{"version":3,"sources":["../js/services/global/global.js","../js/services/errorService.js","../js/services/settingService.js","../js/services/integrations/integration-service.js","../js/controllers/integrations/integration-controller.js","../js/controllers/integrations/manage-nonprofiteasy-controller.js","../js/controllers/integrations/sync-activity-modal-controller.js","../js/lib/angular/ui-bootstrap-tpls-0.14.3.min.js","../js/services/facebook.min.js","../js/services/tools/commonRegExService.js","../js/directives/passwordStrength.js","../js/services/main/authentication.js","../js/controllers/main/authentication.js","../js/services/main/loginservice.js","../js/services/main/loginfactory.js"],"names":["SUGApp","service","$http","SUGUtilities","$q","$window","$location","globalService","getDateAndTZFormats","APISyncCall","getDateFormatSamples","id","ID","setDateAndTZFormats","dateformatid","zoneid","signUpDefault","setSignUpDateAndTZSettings","data","getCountries","APISyncCallWithCaching","getTimeZonesByCountry","countrycode","getTimeZonesByZoneGroup","zoneGroupID","includetzshort","getZoneGroupsByCountry","countryCode","getInternationalDateFormats","uploadFile","uploadUrl","fileObj","destDirectory","fd","FormData","append","post","transformRequest","angular","identity","headers","Content-Type","undefined","success","result","error","getEventLogByType","hasPermission","permission","getMemberSettings","updateMemberSignUpSettings","getSetting","getGlobalSettings","saveSetting","getMemberID","getActualMemberID","getMemberInformation","isUndefinedOrEmptyObject","getSettingCategory","checkPermission","getGlobalVariable","getMerchantConfig","isLoggedIn","deferred","defer","then","response","r","lowerCaseKeys","code","location","reload","reject","resolve","promise","checkNewAdDirective","isFeatureEnabled","getFeatureDetailByName","getFeatureMessageAmounts","checkPageAccess","permlist","failpage","listid","permissioncode","ajaxResultInvalid","isIntegerGT0","authtype","listids","toString","split","some","currListID","length","href","path","logAdBlockerUsage","sanitize","getInvisibleReCaptcha","validateInvisibleReCaptcha","key","init","errors","hasErrors","getErrors","isArray","isStringNullOrEmpty","isEmptyObject","field","arrErrors","hasOwnProperty","concat","setError","value","clearErrors","jQuery","coreService","newInstance","sugCacheFactory","SUCCESS","DATA","parseSettingByName","settings","settingName","thisSetting","s","SETTINGNAME","JSON","parse","SETTINGSJSON","settingID","getMemberInfo","memberInfo","get","memberId","resultErrorHandler","memberResponseData","isNumber","memberid","isFinite","parentid","parentID","isSubAdmin","set","saveMySettings","settingService","this","settingCategoryName","settingCategory","getSettingByName","blnForceRefresh","uniqueSettingLabel","mySettings","memberID","category","saveSettings","settingId","settingsObj","mid","numPerPage","MESSAGE","message","settingCategoryID","settingJSON","parseInt","dateAndTZFormats","deleteSettings","integrationService","$injector","has","loginfactory","xhrLoginHandler","Method","url","goAction","timeout","myLoginInstance","getLogin","login","checkNPEAccess","params","featureCheck","tokenCheck","memberHasNPEFeature","featresp","authresp","status","getPublicIntegrations","name","refkey","classname","active","logoimage","modalimage","imagealt","briefdesc","fulldesc","learnmorebtn","learnmorelink","order","enabled","ispopular","authorizeNPE","disableNPE","getlink","getNPESignups","getNPESyncTypes","isAppFeatureEnabled","saveNPESignups","saveNPESyncSettings","resyncNPE","changeNPESyncType","getNPESyncActivity","resetNPESyncJob","$inject","config","$routeProvider","$compileProvider","aHrefSanitizationWhitelist","when","templateUrl","controller","routeparams","$route","current","otherwise","redirectTo","manageIntegrationsController","$scope","$filter","$modal","$timeout","errorService","openNpeWindow","loginurl","winProps","window","outerWidth","_loginwindow","open","sug_integrations","isProcessing","loaded","fullsecureurl","globalcfg","secureURL","secureurl","replace","userdef","_hasNpeTokens","_npeLoginUrl","_appFeatureName","eventMethod","integrations","ispro","productlabel","productrank","learnmoremodal","managebtn","managebtnlabel","managebtnshowicon","controlled","statusmsg","type","title","text","dismissable","show","noshadow","reset","strings","errorsTitle","errorsPleaseCorrect","probadge","es","$on","event","processing","showLoading","scrollTo","addEventListener","npeLoginEventListener","windowOrigin","loadData","e","origin","source","includes","close","toLowerCase","trim","err","console","log","loadUserData","appFeatureEnabled","npeobj","hasNpeFeature","memberFeaturecheck","features","nonprofiteasy","broadCast","Object","keys","ownerid","email","istrial","usertype","getAjaxResponseMessage","istrialuser","featurename","skipAppFeatureCheck","hasfeature","payload","showprobadge","integration","showlearnmore","showmanage","manage","learnmore","learnMoreBtn","$","magnificPopup","mainClass","removalDelay","items","src","updateManageBtn","label","showicon","resetNpeTokens","manageNonProfitEasyController","$uibModal","$sce","$templateCache","frmObj","searchFilter","checkAll","dateFormat","sync","general","volunteer","slots","frmDisableField","_hasNpeFeature","loadSettings","hasAccess","$parent","noPermission","arrDF","dateformats","i","len","val","selected","short","settingsName","categoryName","frmSettings","syncSettingsName","syncSettings","syncSettingID","prepareUserSettings","orderColumn","direction","arrowDir","pagination","findClosestClickableElement","element","includeElement","click","parentElement","clickInterceptHandler","dirty","preventDefault","stopPropagation","confirmAbandonChanges","save","$clickTargets","off","target","npeSignups","npeSignupsFiltered","synctypes","commentlen","innerWidth","hoursmax","_userdef","signupsToSave","asc","desc","savebtn","cancelbtn","itemsPerPageInvalid","confirmTitle","syncConfirmBody","syncConfirmButton","syncSuccessMsg","disableConfirmBody","disableConfirmButton","disableSuccessMsg","saveVolSuccessMsg","changeSyncConfirmBody","changeSyncConfirmButton","saveSuccessMsg","validationError","saveSyncSettingsError","syncTypeChgSuccessMsg","errorDetailTitle","errorDetailConfirmBody","errorDetailConfirmButton","resetSyncJobSuccessMsg","page","instructions","disable","disablelink","table","headersignup","headersync","headertype","noData","noFilteredData","settingsicon","settingsdisabledicon","resyncicon","trustAsHtml","resynciconpending","resynciconerror","rsvpresyncicon","selecttype","selectitem","disabled","rsvptip","enablesync","synctip","modalspecific","note","usedefault","ignoreslots","defaulthoursA","defaulthoursB","numberhours","settingserror","itemsPerPage","saveButton","settingsPopover","sortBy","sortOrder","titlelbl","datelbl","typelbl","statusmsg_npe","sortOptions","popover","popTrig","popPlacement","popDelay","appendToBody","recordCount","currentPage","maxSize","getActivePopover","su","isrsvp","isactive","getResyncPopover","jobstatus","put","dropDownClickEvent","saveUserSettings","types","signups","integrationsyncid","push","copy","isdefault","lastsyncepoch","lastsyncsuccessepoch","parsedDate","jstatus","epoch","epochsuccess","syncdateformatted","utcToLocalDate","Date","jobresult","filterData","initializeDirtiness","setSort","columnKey","begin","end","searchNpeSignups","slice","objSignup","indexOf","synctypekey","revertSettings","ajaxErrorHandler","toggleSuSettings","showConfirmationModal","txtConfirmationTitle","txtConfirmationMessage","lblYesButton","lblCancelButton","$uibModalInstance","dismiss","idList","ids","cb","noop","isNaN","parseFloat","hours","validateSignupData","genericError","signupName","synctypeid","syncsettings","updateSaveArray","idx","originalsynctypekey","lkup","backupSettings","syncObj","syncsettingid","cancel","docheck","checkCount","suLength","issynced","docheckall","dosettings","showVolSettingsModal","resync","evt","frmDisableChecks","signup","classList","remove","changesynctype","newTypeKey","newTypeLbl","oldTypeLbl","typekey","oldType","newType","listId","syncTypeId","isActive","jobid","errordetails","errorText","updatedsu","lastjobstartdate","toLocaleString","updateSignUpModels","resetSettings","resetsu","lastjobcompletedate","o","disablegear","monogear","updatehours","getSignupLink","urlid","link","volsignup","voltext","newsyncsettings","suid","volsignupid","stringify","showSyncActivity","$watchCollection","nVal","oVal","$watch","newVal","oldVal","showMagnificAlert","bind","$navigateContainers","not","on","lblAltButton","npeVolSettingsModalController","isProcessingModal","buttonSave","modal_es","frm","disableForm","blnDisabled","syncActivityModalController","isProcessingSaModal","colspan","jqActivity","jqActivityFiltered","headerdate","headerstatus","headerresult","samodal_es","activity","jobdateepoch","dateformatted","updateDateAndTZSettings","dtz","searchSyncActivity","objActivity","dateTZFormats","module","directive","a","b","c","d","g","removeClass","addClass","css","height","uibCollapse","hasClass","scrollHeight","attr","to","start","easing","f","k","warn","collapse","done","animate","constant","closeOthers","groups","isDefined","$eval","forEach","isOpen","addGroup","removeGroup","splice","controllerAs","transclude","require","scope","heading","isDisabled","setHeading","openClass","panelClass","toggleClass","toggleOpen","which","template","uibAccordionTransclude","find","html","extend","$attrs","restrict","accordionTransclude","closeable","dismissOnTimeout","activeClass","toggleEvent","display","$render","equals","$modelValue","uibBtnRadio","uncheckable","$apply","$setViewValue","btnCheckboxTrue","h","btnCheckboxFalse","btnRadio","j","l","activeElement","isUndefined","n","index","interval","next","pause","m","slides","version","minor","q","currentSlide","select","indexOfSlide","getCurrentIndex","$currentTransition","noTransition","$element","one","noWrap","prev","play","noPause","addSlide","removeSlide","sort","actual","animation","beforeAddClass","parent","beforeRemoveClass","parsers","yyyy","regex","apply","year","yy","y","MMMM","DATETIME_FORMATS","MONTH","join","month","MMM","SHORTMONTH","MM","M","dd","date","EEEE","DAY","EEE","SHORTDAY","HH","hh","H","mm","minutes","sss","milliseconds","ss","seconds","AMPMS","isString","RegExp","map","match","isDate","getTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","p","call","setFullYear","factory","currentStyle","getComputedStyle","style","position","offset","top","left","offsetParent","clientTop","scrollTop","clientLeft","scrollLeft","getBoundingClientRect","width","prop","pageYOffset","documentElement","pageXOffset","positionElements","center","right","bottom","formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","datepickerMode","minMode","maxMode","showWeeks","startingDay","yearRange","minDate","maxDate","shortcutPropagation","modes","refreshView","uniqueId","$id","Math","floor","random","initDate","activeDate","$isEmpty","$invalid","compare","activeDateId","uid","render","$viewValue","_refreshView","$setValidity","createDateObject","customClass","dateDisabled","mode","move","step","years","months","toggleMode","13","32","33","34","35","36","37","38","39","40","focus","keydown","shiftKey","altKey","ctrlKey","handleKeyDown","getDates","Array","setDate","getDay","secondary","labels","abbr","full","rows","weekNumbers","setMonth","round","min","yearpickerInit","datepickerPopup","datepickerPopupTemplateUrl","datepickerTemplateUrl","html5Types","datetime-local","currentText","clearText","closeText","closeOnDateSelection","showButtonBar","onOpenFocus","ngRequired","A","contains","t","u","v","w","x","z","B","C","watchData","datepickerAppendToBody","uibDatepickerPopup","$observe","Error","ng-model","ng-change","template-url","children","datepickerOptions","assign","isFunction","$formatters","$$parserName","$validators","$parsers","unshift","$viewChangeListeners","after","$$phase","unbind","getText","dateSelection","setHours","$broadcast","fixTimeZone","getAutoClose","getToggleElement","getDropdownElement","focusToggleElement","isKeynavEnabled","test","focusDropdownEntry","$new","onToggle","dropdownAppendToBody","uibKeyboardNav","dropdownMenu","toggle","arguments","toggleElement","autoClose","getElement","eq","selectedOption","dropdownMenuTemplateUrl","replaceWith","$destroy","dropdownNested","aria-haspopup","aria-expanded","createNew","add","removeTop","entries","hasKey","modalInClass","NOW_CLOSING_EVENT","compile","backdropClass","windowClass","windowTopClass","size","getTop","backdrop","currentTarget","$isRendered","querySelector","modalRendered","modalAnimation","uibModalAnimationClass","empty","modalDomEl","modalScope","openedClass","leave","defaultPrevented","isDefaultPrevented","keyboard","loadFocusElementList","isFocusInFirstItem","focusLastFocusableElement","isFocusInLastItem","focusFirstFocusableElement","renderDeferred","windowTemplateUrl","window-class","window-top-class","content","modalOpener","clearFocusListCache","$$uibDestructionScheduled","dismissAll","srcElement","querySelectorAll","provider","options","$get","getPromiseChain","opened","rendered","all","invoke","$close","$dismiss","defineProperty","bindToController","modalAnimationClass","numPages","totalPages","calculateTotalPages","selectPage","ceil","totalItems","max","ngDisabled","blur","noPrevious","noNext","boundaryLinks","directionLinks","firstText","previousText","nextText","lastText","rotate","number","pages","align","placement","popupDelay","popupCloseDelay","useContentExp","mouseenter","none","setTriggers","trigger","hide","startSymbol","endSymbol","L","K","O","popupClass","F","G","D","I","P","$$postDigest","Q","$evalAsync","E","N","visibility","R","J","removeEventListener","S","origScope","contentExp","T","tooltipTemplateTranscludeScope","parseAsResourceUrl","uibTooltipTemplateTransclude","enter","$emit","tooltipAnimationClass","originScope","tooltipTemplateTransclude","bars","addBar","transition","recalculatePercentage","reduce","percent","toFixed","removeBar","stateOn","stateOff","titles","ratingStates","range","buildTemplateObjects","getTitle","rate","readonly","onHover","onLeave","onKeydown","tabs","onDeselect","selectCalled","onSelect","addTab","removeTab","vertical","justified","$transcludeFn","uibTabContentTransclude","tagName","hasAttribute","headingElement","tabContentTransclude","hourStep","minuteStep","showMeridian","meridians","readonlyInput","mousewheel","arrowkeys","showSpinners","meridian","invalidHours","invalidMinutes","tabindex","removeAttr","setupMousewheelEvents","setupArrowkeyEvents","setupInputEvents","noIncrementHours","noDecrementHours","noIncrementMinutes","noDecrementMinutes","noToggleMeridian","$error","time","originalEvent","wheelDelta","deltaY","detail","incrementHours","decrementHours","incrementMinutes","decrementMinutes","updateHours","updateMinutes","setMinutes","toggleMeridian","itemName","viewMapper","modelMapper","moveInProgress","$digest","matches","typeaheadMinLength","typeaheadWaitMs","typeaheadEditable","typeaheadLoading","typeaheadOnSelect","typeaheadSelectOnBlur","typeaheadNoResults","typeaheadInputFormatter","typeaheadAppendToBody","typeaheadAppendToElementId","typeaheadFocusFirst","typeaheadSelectOnExact","ngModel","uibTypeahead","aria-autocomplete","aria-owns","move-in-progress","query","typeaheadTemplateUrl","typeaheadPopupTemplateUrl","activeIdx","toUpperCase","model","V","W","$options","getterSetter","$$$p","$item","$model","$label","typeaheadFocusOnSelect","X","getElementById","popupTemplateUrl","selectActive","selectMatch","filter","U","typeahead","Y","Z","run","$$csp","document","prepend","fbConnected","fbLoading","initFB","FB","appId","cookie","xfbml","Event","subscribe","authresponse","accesstoken","fbAsyncInit","getElementsByTagName","createElement","parentNode","insertBefore","getFBUserInfo","atId","uidId","userid","sigId","signedrequest","fbLogin","getLoginStatus","addressRegEx","bankAccountNumberRegEx","bankRoutingNumberRegEx","caGSTHSTNumberRegEx","caGSTHSTNumberLowerCaseRegEx","caBankAccountNumberRegEx","caBankTransitRegEx","caInstitutionNumberRegEx","caPostalCodeRegEx","caSinRegEx","cityRegEx","einRegEx","emailRegEx","noSpecialCharsForFileRegEx","phoneRegEx","poboxRegEx","ssnFullRegEx","ssnLast4RegEx","uriRegEx","zipcodeRegEx","canadianPostalCodeRegEx","validateZipOrPostalCode","password","password2","styleoverride","allTrue","obj","useglyph","passwordComplexity","passwordValid","displayError","accountdetails","error_description","error_code","checkStrength","pass","pass2","ruletype","passwordLenValue","rule","minvalue","maxvalue","regexPattern","pattern","attrs","strengthValue","util","logoutUser","forgotPassword","loginUser","createMember","verifyDisabledAccount","getsmappid","getMainNavigation","passwordRulesText","validatePasswordRules","getLoginRateLimit","changePassword","Message","isDefinedNotNullNotEmpty","statustext","svc","fbSvc","loginRequired","loginMessage","register","registerDisabled","sce","commonRegExService","complete","loginemail","newemail","pword","remember","firstname","lastname","companyname","verifytype","errorMessages","btnLabel","mainLabel","blacklistedAddress","fbAuth","fbBtnLabel","sugAccountRequired","captcha","captchaValid","showrecaptcha","failedlogins","passwordmustbechanged","passwordRules","hideForgotPassword","getReCaptcha","resultCheck","snippet","recaptchafeature","feature","ratelimit","showForm","thisForm","oldBtn","validateForm","errorHandler","resp","saveresp","showintermediatelogin","isblacklisted","failed","ipfailedlogins","recaptcha","count","displayafter_attempts","limit","registerUser","loginuser","messageTitleOverride","createMemberMessageHandler","startAts","verifyAddress","previousEmail","setProcessing","originalFbButtonLabel","loginFBUser","fbAuthInfo","fbUserInfo","userinfo","first_name","last_name","authToken","user","frmDisabled","errorExists","elem","getError","passwordErrors","pword2","passwordInvalid","passwordMatch","fields","requirecompany","valdiatePasswordStrength","errMessage","alertType","messagetitle","recaptchaCallback","validateCaptcha","iosPositioningFix","navigator","platform","passwordValidation","passwordErrorIsString","changepassword","utility","getAllUrlParams","showcompany","isoptional","getUserInfo","requires","modal","win","authSvc","disableRegistration","showregistrationfirst","updateMenu","menu","isD","allowRegistration","loggedin","asyncSuccess","fbAppId","objForm","owner","getUrlParamValue","siid","imid","usealternatename","changemembermame","displayfirstname","displaylastname","savecontactinfo","cancelBtn","deleteBtn","breadcrumbBtn","contactinfo","additionalinfo","standardErrors","email_invalid","email_length","firstname_length","lastname_length","quantity_invalid","errormessage","logout","thismemberid","finally","sugTagManager","preplogin","required","destination","allowregister","showregister"],"mappings":"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","file":"integration.min.js","sourcesContent":["/**\r\n * services for member's settings\r\n **/\r\nSUGApp.service('globalService', ['$http', 'SUGUtilities', '$q', '$window', '$location', function( $http, SUGUtilities, $q, $window, $location ){\r\n\r\n\tvar globalService = {};\r\n\r\n\tvar defaultTtl = 60000;\r\n\r\n\tglobalService.getDateAndTZFormats = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", \"m.getDateAndTimeZoneFormats\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getDateFormatSamples = function( id ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", {ID:id}, \"m.getDateFormatSamples\", 15000 );\r\n\t};\r\n\r\n\tglobalService.setDateAndTZFormats = function( dateformatid, zoneid, signUpDefault ){\r\n\t\treturn \tSUGUtilities.APISyncCall( \"post\", \"\", {dateformatid:dateformatid,zoneid:zoneid,signUpDefault:signUpDefault}, \"m.saveDateAndTZSettings\", 15000 );\r\n\t};\r\n\r\n\tglobalService.setSignUpDateAndTZSettings = function( data ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"w.saveSignUpDateAndTZSettings\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getCountries = function(){\r\n\t\treturn SUGUtilities.APISyncCallWithCaching( \"get\", \"\", \"\", \"g.getCountries\", 15000 );\t\t\t\t\r\n\t};\r\n\r\n\tglobalService.getTimeZonesByCountry = function( countrycode ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", {countrycode:countrycode}, \"g.getTimeZonesByCountry\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getTimeZonesByZoneGroup = function( countrycode, zoneGroupID, includetzshort ){\r\n\t\tvar data = {countrycode:countrycode,zoneGroupID:zoneGroupID};\r\n\t\tif( typeof includetzshort !== 'undefined'){ data.includetzshort = includetzshort; }\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getTimeZonesByZoneGroup\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getZoneGroupsByCountry = function( countryCode ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", {countryCode:countryCode}, \"g.getZoneGroupsByCountry\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getInternationalDateFormats = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", \"g.getInternationalDateFormats\", 15000 );\r\n\t};\r\n\r\n\tglobalService.uploadFile = function( uploadUrl, fileObj, destDirectory ){\r\n\t\tif( typeof uploadUrl === 'undefined' || typeof fileObj === 'undefined' || typeof destDirectory === 'undefined' )\r\n\t\t\treturn 'uploadUrl, fileObj, destDirectory are all required.';\r\n\r\n var fd = new FormData();\r\n \tfd.append('file', fileObj );\r\n \tfd.append('directory', destDirectory);\r\n return $http.post(uploadUrl, fd, {\r\n\t transformRequest: angular.identity,\r\n\t headers: {'Content-Type': undefined}\r\n\t })\r\n\t .success(function( result ){\r\n\t \treturn result;\r\n\t })\r\n\t .error(function( result ){\r\n\t \treturn result;\r\n\t });\r\n\r\n };\r\n\r\n\r\n\tglobalService.getEventLogByType = function(data){\r\n\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getEventLogByType\", 15000 );\r\n\t};\r\n\r\n\tglobalService.hasPermission = function( permission ){\r\n\t\tif( typeof permission == undefined )\r\n\t\t\treturn false;\r\n\t\telse\r\n\t\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", permission, \"g.hasPermission\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getMemberSettings = function(data){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getMemberSettings\", 15000 );\r\n\t};\r\n\r\n\tglobalService.updateMemberSignUpSettings = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.updateMemberSignUpSettings\", 15000 );\r\n };\r\n\r\n\tglobalService.getSetting = function(){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", \"\", \"g.getSetting\", 15000 );\r\n };\r\n\r\n\tglobalService.getGlobalSettings = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getGlobalSettings\", 15000 );\r\n };\r\n\r\n\tglobalService.saveSetting = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.saveSetting\", 15000 );\r\n };\r\n\r\n\tglobalService.getMemberID = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", 'm.getMemberID' );\r\n\t};\r\n\r\n\tglobalService.getActualMemberID = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", 'm.getActualMemberID' );\r\n\t};\r\n\r\n\tglobalService.getMemberInformation = function(data){\r\n\t\tif( SUGUtilities.isUndefinedOrEmptyObject(data) ){\r\n\t\t\treturn SUGUtilities.APISyncCall(\"get\", \"\", \"\", \"m.getMemberInfo\", 15000 );\r\n\t\t} else {\r\n\t\t\treturn SUGUtilities.APISyncCall(\"post\", \"\", data, \"m.getMemberInfo\", 15000 );\r\n\t\t}\r\n\t};\r\n\r\n\tglobalService.getSettingCategory = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getSettingCategory\", 15000 );\r\n };\r\n\r\n\tglobalService.checkPermission = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.checkPermission\", 15000 );\r\n };\r\n\r\n\tglobalService.getGlobalVariable = function( data ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getGlobalVariable\", 15000 );\r\n\t};\r\n globalService.getMerchantConfig = function( data ){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getMerchantConfiguration\", 15000 );\r\n };\r\n\r\n globalService.isLoggedIn = function(){\r\n var deferred = $q.defer();\r\n globalService.getMemberID().then(function (response) {\r\n // successfully retrieved member info\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if(r.data && r.data.code && r.data.code === 1002){\r\n $window.location.reload();\r\n deferred.reject(false);\r\n } else {\r\n deferred.resolve(true);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n\tglobalService.checkNewAdDirective = function( data ){\r\n\t\treturn SUGUtilities.APISyncCallWithCaching( \"post\", \"\", data, \"g.useNewAdDirective\", 15000 );\r\n\t};\r\n\r\n\tglobalService.isFeatureEnabled = function( data ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.isFeatureEnabled\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getFeatureDetailByName = function( data ){\r\n\t\treturn \tSUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getFeatureDetailByName\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getFeatureMessageAmounts = function(data){\r\n\t\treturn SUGUtilities.APISyncCallWithCaching( \"post\", \"\", data, \"g.getFeatureMessageAmounts\", 15000, defaultTtl );\t\t\t\t\r\n\t};\r\n\r\n\t/**\r\n\t * Used to verify page access during AngularJS route resolution (not for security but for improved UX)\r\n\t *\r\n\t * @param {String} permlist - The permission(s) to check\r\n\t * @param {String} failpage - Optional page to redirect to on permission check failure, otherwise directs to the '/' route\r\n\t * @param {Number} listid - Optional listid to verify access against\r\n\t */\r\n\tglobalService.checkPageAccess = function(permlist,failpage,listid){\r\n\t\tvar deferred = $q.defer();\r\n\t\tglobalService.checkPermission({\r\n\t\t\tpermissioncode: permlist\r\n\t\t}).then(function (response) {\r\n\t\t\tif (!SUGUtilities.ajaxResultInvalid(response)) {\r\n\t\t\t\tvar r = SUGUtilities.lowerCaseKeys(response);\r\n\t\t\t\t// see if we need to validate against a specific listid\r\n\t\t\t\tif(SUGUtilities.isIntegerGT0(listid) && r.data.data.authtype && r.data.data.authtype === 'P' && r.data.data.listids){\r\n\t\t\t\t\tvar arrListIDs = r.data.data.listids.toString().split(',');\r\n\t\t\t\t\tvar matchedAuthID = arrListIDs.some(function(currListID){\r\n\t\t\t\t\t\treturn (+currListID === +listid);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif(matchedAuthID){\r\n\t\t\t\t\t\tdeferred.resolve(r.data.data);\r\n\t\t\t\t\t} else if (typeof failpage !== 'undefined' && failpage.length) {\r\n\t\t\t\t\t\t$window.location.href = failpage;\r\n\t\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$location.path('/');\r\n\t\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdeferred.resolve(r.data.data);\r\n\t\t\t\t}\r\n\t\t\t} else if (typeof failpage !== 'undefined' && failpage.length) {\r\n\t\t\t\t$window.location.href = failpage;\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t} else {\r\n\t\t\t\t$location.path('/');\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn deferred.promise;\r\n\t};\r\n\r\n\tglobalService.logAdBlockerUsage = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"c.logAdBlockerUsage\", 15000 );\r\n\t};\r\n\t\r\n\t// sanitize for XSS\r\n\tglobalService.sanitize = function (data) {\r\n\t\treturn SUGUtilities.APISyncCall('post', '', data, 'g.sanitize', 15000);\r\n\t};\r\n\r\n\t\r\n\t/**\r\n * \r\n * @param {string} data the id of the owner \r\n * @returns \r\n */\r\n\tglobalService.getInvisibleReCaptcha = function(data) {\t\r\n\t\treturn SUGUtilities.APISyncCall(\"post\", \"\", data, \"g.getInvisibleReCaptcha\", 15000);\r\n\t}\r\n\r\n\t/** validates a recaptcha token returned by Google's invisible recaptcha\r\n\t * \r\n\t * @param {string} key - token to validate\r\n\t * @returns \r\n\t */\r\n\t/** method to verify the captcha response **/\r\n\tglobalService.validateInvisibleReCaptcha = function(key) {\r\n\t\treturn SUGUtilities.APISyncCall(\"post\", \"\", key, \"g.validateInvisibleReCaptcha\", 15000);\r\n\t}\r\n\t\r\n // return object\r\n return globalService;\r\n\r\n}]);\r\n","/* Error service\r\n *\r\n * This service can be used to set and retrieve errors and track the presence of errors.\r\n */\r\nSUGApp.service('errorService', ['SUGUtilities', function (SUGUtilities) {\r\n var service = {\r\n getService: function(){\r\n var service = {\r\n init: function () {\r\n // clear / reinit the errors\r\n service.errors = {};\r\n service.hasErrors = false;\r\n },\r\n errors: {},\r\n hasErrors: false,\r\n getErrors: function (key) {\r\n if (key) {\r\n // get the error(s) for a specific key (can be an array or a string)\r\n if (SUGUtilities.isArray(service.errors[key]) || !SUGUtilities.isStringNullOrEmpty(service.errors[key])) {\r\n return service.errors[key];\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n // get all the errors\r\n if (SUGUtilities.isEmptyObject(service.errors)) {\r\n return false;\r\n } else {\r\n var arrErrors = [];\r\n for (var field in service.errors) {\r\n if (service.errors.hasOwnProperty(field)) {\r\n arrErrors = arrErrors.concat(service.errors[field]);\r\n }\r\n }\r\n return arrErrors;\r\n }\r\n }\r\n },\r\n setError: function (key, value) {\r\n service.errors[key] = value;\r\n service.hasErrors = true;\r\n },\r\n clearErrors: function (key) {\r\n if (typeof key === 'undefined') {\r\n service.errors = {};\r\n service.hasErrors = false;\r\n } else {\r\n if (typeof service.errors[key] !== 'undefined') {\r\n delete service.errors[key];\r\n }\r\n if (jQuery.isEmptyObject(service.errors)) {\r\n service.hasErrors = false;\r\n } else {\r\n service.hasErrors = true;\r\n }\r\n }\r\n }\r\n };\r\n return service;\r\n }\r\n };\r\n\r\n var coreService = service.getService();\r\n coreService.newInstance = service.getService;\r\n \r\n return coreService;\r\n\r\n}]);","/* Setting Service\r\n *\r\n * This service can be used to set and retrieve user settings (i.e. grid preferences).\r\n */\r\nSUGApp.service('settingService', ['sugCacheFactory', 'SUGUtilities', 'globalService', '$q', function (sugCacheFactory, SUGUtilities, globalService, $q) {\r\n // set internal reference\r\n var settingService = this;\r\n\r\n /*************************\r\n BEGIN PRIVATE METHODS\r\n *************************/\r\n\r\n /**\r\n * check if the server response is invalid\r\n *\r\n * @param {object} result standard response, i.e. {success, message, data}\r\n * @returns {boolean}\r\n */\r\n var ajaxResultInvalid = function (result) {\r\n return (typeof result.data === 'undefined' || !result.data.SUCCESS || !result.data.DATA);\r\n };\r\n\r\n /**\r\n * Parse Setting from Settings Array by Name\r\n *\r\n * @param {array} settings\r\n * @param {string} settingName\r\n * @returns {object} setting object\r\n */\r\n var parseSettingByName = function (settings, settingName) {\r\n var thisSetting = {};\r\n for (var s = 0; s < settings.length; s++) {\r\n if (settings[s].SETTINGNAME && settings[s].SETTINGNAME == settingName) {\r\n thisSetting = JSON.parse(settings[s].SETTINGSJSON);\r\n thisSetting.settingID = settings[s].ID;\r\n }\r\n }\r\n return thisSetting;\r\n };\r\n\r\n /**\r\n * Get Member Info\r\n *\r\n * @returns {object} member information object\r\n */\r\n var getMemberInfo = function () {\r\n var deferred = $q.defer();\r\n var memberInfo = sugCacheFactory.get('memberinfo',{});\r\n if (!memberInfo.memberId || memberInfo.memberId <= 0) {\r\n globalService.getMemberInformation().then(function (response) {\r\n if (ajaxResultInvalid(response)) {\r\n // invalid response, reject with error message\r\n deferred.reject(SUGUtilities.resultErrorHandler(response.data));\r\n } else {\r\n // successfully retrieved member info\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if (r.data && r.data.data) {\r\n var memberResponseData = r.data.data;\r\n if (angular.isNumber(memberResponseData.memberid) && isFinite(memberResponseData.memberid)) {\r\n memberInfo.memberId = memberResponseData.memberid;\r\n if (angular.isNumber(memberResponseData.parentid) && isFinite(memberResponseData.parentid)) {\r\n memberInfo.parentID = memberResponseData.parentid;\r\n if (memberInfo.parentID != memberInfo.memberId) {\r\n memberInfo.isSubAdmin = true;\r\n }\r\n }\r\n sugCacheFactory.set('memberinfo', memberInfo);\r\n }\r\n }\r\n deferred.resolve(memberInfo);\r\n }\r\n });\r\n } else {\r\n deferred.resolve(memberInfo);\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Save settings to server\r\n *\r\n * @param {object} data\r\n * @returns {promise}\r\n */\r\n var saveMySettings = function (data) {\r\n return SUGUtilities.APISyncCall('post', '', data, 'c.saveMySettings', 15000);\r\n };\r\n\r\n /*************************\r\n END PRIVATE METHODS\r\n *************************/\r\n\r\n /*************************\r\n BEGIN PUBLIC METHODS\r\n *************************/\r\n\r\n /**\r\n * Get Seting Category\r\n *\r\n * @param {string} settingCategoryName\r\n * @returns {object} setting category object\r\n */\r\n settingService.getSettingCategory = function (settingCategoryName) {\r\n var deferred = $q.defer();\r\n var settingCategory = sugCacheFactory.get('settingCategory_' + settingCategoryName,{});\r\n if (!settingCategory.ID) {\r\n settingCategory = globalService.getSettingCategory({\r\n settingCategoryName: settingCategoryName\r\n }).then(function (r) {\r\n if (r.data && r.data.DATA && angular.isArray(r.data.DATA) && r.data.DATA.length && angular.isNumber(r.data.DATA[0].ID) && isFinite(r.data.DATA[0].ID)) {\r\n settingCategory = r.data.DATA[0];\r\n sugCacheFactory.set('settingCategory_' + settingCategoryName, settingCategory);\r\n } else {\r\n settingCategory = {};\r\n }\r\n deferred.resolve(settingCategory);\r\n });\r\n } else {\r\n deferred.resolve(settingCategory);\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Get Settings\r\n *\r\n * @param {string} settingName\r\n * @param {string} settingCategoryName\r\n * @param {boolean} blnForceRefresh\r\n * @returns {object} settings object\r\n */\r\n settingService.getSettingByName = function (settingName, settingCategoryName, blnForceRefresh) {\r\n var deferred = $q.defer();\r\n var thisSetting = {};\r\n var uniqueSettingLabel = 'setting_' + settingCategoryName + '_' + settingName;\r\n var mySettings = sugCacheFactory.get(uniqueSettingLabel,[]);\r\n if (!mySettings.length || blnForceRefresh) {\r\n getMemberInfo().then(\r\n function (memberInfo) {\r\n if (memberInfo.memberId) {\r\n settingService.getSettingCategory(settingCategoryName).then(function (settingCategory) {\r\n if (settingCategory.ID) {\r\n globalService.getMemberSettings({\r\n memberID: memberInfo.memberId,\r\n category: settingCategory.ID\r\n }).then(function (r) {\r\n if (r.data.DATA && r.data.DATA.length) {\r\n mySettings = r.data.DATA;\r\n sugCacheFactory.set(uniqueSettingLabel, mySettings);\r\n thisSetting = parseSettingByName(mySettings, settingName);\r\n deferred.resolve(thisSetting);\r\n } else {\r\n sugCacheFactory.set(uniqueSettingLabel, ['No settings defined.']);\r\n deferred.resolve(thisSetting);\r\n }\r\n });\r\n } else {\r\n deferred.resolve(thisSetting);\r\n }\r\n });\r\n } else {\r\n deferred.resolve(thisSetting);\r\n }\r\n },\r\n function (error) {\r\n deferred.reject(error);\r\n }\r\n );\r\n } else {\r\n thisSetting = parseSettingByName(mySettings, settingName);\r\n deferred.resolve(thisSetting);\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Save Settings\r\n *\r\n * @param {number} settingId\r\n * @param {string} settingName\r\n * @param {string} settingCategoryName\r\n * @param {object} settingsObj\r\n * @param {number} memberId - if passed function will verify argument memberId matches the session's memberid\r\n * @returns {number} id of saved setting\r\n */\r\n settingService.saveSettings = function (settingId, settingName, settingCategoryName, settingsObj, memberId) {\r\n var mid = typeof memberId != 'undefined' ? memberId : 0;\r\n var deferred = $q.defer();\r\n // validate number per page if present (stop processing if empty or invalid since we must have it for proper filter/sort)\r\n if (settingsObj.hasOwnProperty('numPerPage') && (settingsObj.numPerPage && !(angular.isNumber(~~settingsObj.numPerPage) && isFinite(~~settingsObj.numPerPage)) || ~~settingsObj.numPerPage <= 0) ) {\r\n deferred.reject({\r\n SUCCESS: false,\r\n MESSAGE: 'Items per page must be a number greater than 0.'\r\n });\r\n } else {\r\n getMemberInfo().then(\r\n function (memberInfo) {\r\n if (memberInfo.memberId) {\r\n\r\n // if mid was passed in with save settings, validate the active user didn't change\r\n if( mid > 0 && mid != memberInfo.memberId){\r\n var rsp = {success:false, code:1003, message:[\"There was a problem executing this page. You do not have the correct permissions.\"], data:\"\"};\r\n deferred.reject(rsp);\r\n }\r\n\r\n settingService.getSettingCategory(settingCategoryName).then(function (settingCategory) {\r\n saveMySettings({\r\n settingID: settingId,\r\n memberid: memberInfo.memberId,\r\n settingName: settingName,\r\n settingCategoryID: settingCategory.ID,\r\n settingJSON: settingsObj\r\n }).then(\r\n function (response) {\r\n if (ajaxResultInvalid(response)) {\r\n deferred.reject(response);\r\n } else {\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n //clear the cached value\r\n sugCacheFactory.set('setting_' + settingCategoryName + '_' + settingName,undefined);\r\n if (settingId === 0) {\r\n settingId = parseInt(r.data.data);\r\n deferred.resolve(settingId);\r\n } else if (settingId > 0 && parseInt(r.data.data) != settingId) {\r\n deferred.reject(response);\r\n }\r\n // This never emits a value (the caller never gets a completed promise)\r\n // if the settingId returned from saveMySettings matches the settingId passed id (an update)\r\n // did not alter it since multiple callers are already in place and didn't want to break anything\r\n // instead created saveSetting method which is identical to this method but returns a value in this condition\r\n }\r\n },\r\n function (response) {\r\n deferred.reject(response);\r\n }\r\n );\r\n });\r\n } else {\r\n // should not happen, resolve the setting back just in case\r\n deferred.resolve(settingId);\r\n }\r\n },\r\n function (error) {\r\n deferred.reject(error);\r\n }\r\n );\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n\r\n /**\r\n * Save Setting - Replaces settingService.saveSettings since it was already used by multiple callers but does not return a value in all situations\r\n *\r\n * @param {number} settingId - the settingId (0 if new)\r\n * @param {string} settingName - name of the setting\r\n * @param {string} settingCategoryName - setting category name\r\n * @param {object} settingsObj - JSON settings object to be saved\r\n * @returns {number} id of saved setting\r\n */\r\n settingService.saveSetting = function (settingId, settingName, settingCategoryName, settingsObj) {\r\n var deferred = $q.defer();\r\n\r\n // validate number per page if present (stop processing if empty or invalid since we must have it for proper filter/sort)\r\n if (settingsObj.numPerPage && !(angular.isNumber(~~settingsObj.numPerPage) && isFinite(~~settingsObj.numPerPage)) || ~~settingsObj.numPerPage <= 0) {\r\n deferred.reject({\r\n SUCCESS: false,\r\n MESSAGE: 'Items per page must be a number greater than 0.'\r\n });\r\n } else {\r\n getMemberInfo().then(\r\n function (memberInfo) {\r\n if (memberInfo.memberId) {\r\n settingService.getSettingCategory(settingCategoryName).then(function (settingCategory) {\r\n saveMySettings({\r\n settingID: settingId,\r\n memberid: memberInfo.memberId,\r\n settingName: settingName,\r\n settingCategoryID: settingCategory.ID,\r\n settingJSON: settingsObj\r\n }).then(\r\n function (response) {\r\n if (ajaxResultInvalid(response)) {\r\n deferred.reject(response);\r\n } else {\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n //clear the cached value\r\n sugCacheFactory.set('setting_' + settingCategoryName + '_' + settingName,undefined);\r\n if (settingId === 0) {\r\n settingId = parseInt(r.data.data);\r\n deferred.resolve(settingId);\r\n } else if (settingId > 0 && parseInt(r.data.data) != settingId) {\r\n deferred.reject(response);\r\n } else if ( !!parseInt(r.data.data) ){\r\n deferred.resolve( parseInt(r.data.data) );\r\n } else {\r\n deferred.reject(false);\r\n }\r\n }\r\n },\r\n function (response) {\r\n deferred.reject(response);\r\n }\r\n );\r\n });\r\n } else {\r\n // should not happen, resolve the setting back just in case\r\n deferred.resolve(settingId);\r\n }\r\n },\r\n function (error) {\r\n deferred.reject(error);\r\n }\r\n );\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Get Date Format\r\n *\r\n * @returns {object} date and timezone object\r\n */\r\n settingService.getDateAndTZFormats = function () {\r\n var deferred = $q.defer();\r\n var dateAndTZFormats = sugCacheFactory.get('DateAndTZFormats',{});\r\n if (jQuery.isEmptyObject(dateAndTZFormats)) {\r\n globalService.getDateAndTZFormats().then(function (response) {\r\n if (ajaxResultInvalid(response)) {\r\n // invalid response, reject with error message\r\n deferred.reject(SUGUtilities.resultErrorHandler(response.data));\r\n } else {\r\n // successfully retrieved\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n dateAndTZFormats = r.data.data;\r\n sugCacheFactory.set('DateAndTZFormats', dateAndTZFormats);\r\n deferred.resolve(dateAndTZFormats);\r\n }\r\n });\r\n } else {\r\n deferred.resolve(dateAndTZFormats);\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n settingService.deleteSettings = function (data) {\r\n return SUGUtilities.APISyncCall('post', '', data, 'c.deleteSettings', 15000);\r\n };\r\n\r\n /*************************\r\n END PUBLIC METHODS\r\n *************************/\r\n\r\n}]);","(function () {\r\n SUGApp.service('integrationService', integrationService);\r\n\r\n integrationService.$inject=['$injector','$q','$window','sugCacheFactory','SUGUtilities'];\r\n function integrationService( $injector, $q, $window, sugCacheFactory, SUGUtilities) {\r\n\r\n var loginfactory;\r\n if ($injector.has('loginfactory')) {\r\n loginfactory = $injector.get('loginfactory');\r\n }\r\n\r\n // define service\r\n var service = {\r\n /**\r\n * Wrapper method to make sure an API call is made by an active, logged in user\r\n * If API call doesn't need to be authenticated, simply use SUGUtilities.APISyncCall\r\n *\r\n * @param {string} Method - The type of API call to make; valid values: get,post\r\n * @param {string} url - The http request endpoint - default set to \"/SUGboxAPI.cfm?go=\"\r\n * @param {object} data - Object containing one or more arguments for the backend call\r\n * @param {string} goAction -the circuit action: (e.g. 'm.integrationSettings')\r\n * @param {long} timeout - The number of milliseconds a request can take before automatically being terminated\r\n *\r\n * ex. service.xhrLoginHandler('post', '', data, 'm.getDataById', 15000);\r\n */\r\n xhrLoginHandler: function (Method, url, data, goAction, timeout) {\r\n return SUGUtilities.APISyncCall(Method, url, data, goAction, timeout).then(\r\n function(response){\r\n var r = SUGUtilities.lowerCaseKeys(response.data);\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // check for logged out user\r\n if (r.code && r.code == 1002 && loginfactory) {\r\n // not logged in\r\n service.myLoginInstance = service.myLoginInstance || loginfactory.getLogin(true);\r\n return service.myLoginInstance.login(true).then(\r\n function () {\r\n // login succeeded, try to call self again\r\n return service.xhrLoginHandler(Method, url, data, goAction, timeout);\r\n }, function () {\r\n // login failed, just refresh the page and force a login\r\n $window.location.reload();\r\n return {};\r\n }\r\n );\r\n } else if (r.code && r.code === 1003) {\r\n // invalid permission - direct to no access page\r\n $window.location.href = '/index.cfm?go=c.NoAccess';\r\n return {};\r\n } else {\r\n // standard error handling, not login/security related error\r\n return response;\r\n }\r\n } else {\r\n return response;\r\n }\r\n }\r\n );\r\n\r\n }\r\n\r\n // used to verify access\r\n , checkNPEAccess: function ( params ) {\r\n var deferred = $q.defer();\r\n\r\n //validate the arguments (even though we don't need them)\r\n if( typeof params.key !== 'undefined'\r\n && params.key.toString().length\r\n && typeof params.mid !== 'undefined'\r\n && isFinite(params.mid)\r\n && params.mid > 0\r\n ){\r\n var featureCheck = false;\r\n var tokenCheck = false;\r\n\r\n //verify NPE feature is enabled and member has it\r\n this.memberHasNPEFeature()\r\n .then(function(response){\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, return false\r\n deferred.resolve(false);\r\n } else {\r\n // successful\r\n var featresp = SUGUtilities.lowerCaseKeys(response);\r\n featureCheck = featresp.data.data;\r\n }\r\n\r\n if(featureCheck){\r\n //check member's NPE oAuth tokens by calling authorizeNPE() directly\r\n service.xhrLoginHandler('post', '', 'npe', 'm.authorizeNPE', 30000)\r\n .then(function(response){\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, return false\r\n deferred.resolve(false);\r\n } else {\r\n // successful\r\n var authresp = SUGUtilities.lowerCaseKeys(response);\r\n sugCacheFactory.set('integration_npetokens', authresp.data.data );\r\n tokenCheck = authresp.data.data.status != 'login required' ? true : false;\r\n deferred.resolve(tokenCheck);\r\n }\r\n }); //END authorizeNPE\r\n } else {\r\n // featureCheck is false\r\n deferred.resolve(false);\r\n }\r\n }); //END memberHasNPEFeature\r\n\r\n } else {\r\n //invalid arguments\r\n deferred.reject(false);\r\n }\r\n return deferred.promise;\r\n }\r\n\r\n , getPublicIntegrations: function() {\r\n var integrationJSON = [\r\n {\r\n 'name': 'Zapier',\r\n 'refkey': 'zapier',\r\n 'classname': 'zapier',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/zapier-logo.png',\r\n 'modalimage': '/images/integrations/zapier-modal.jpg',\r\n 'imagealt': 'Zapier',\r\n 'briefdesc': 'Use Zapier to connect SignUpGenius with hundreds of popular web services.',\r\n 'fulldesc': 'With SignUpGenius Pro and a Zapier account, you have the power to integrate with hundreds of other apps so they can work together.',\r\n 'learnmorebtn': 'Learn More',\r\n 'learnmorelink': '/zapier',\r\n 'order': 10,\r\n 'enabled': 1,\r\n 'ispopular': true,\r\n 'category': 'popular'\r\n },\r\n {\r\n 'name': 'Facebook',\r\n 'refkey': 'facebook',\r\n 'classname': 'facebook',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/facebook-logo.png',\r\n 'modalimage': '/images/integrations/facebook-logo.png',\r\n 'imagealt': 'Facebook',\r\n 'briefdesc': 'Use Facebook to log into your SignUpGenius account or to share your sign ups with your friends and followers.',\r\n 'fulldesc': 'Eliminate the need for a separate password by using Facebook to log into your SignUpGenius account. To share a sign up, simply post the URL link for the published sign up on your Facebook page. Participants can also share on Facebook after they sign up.',\r\n 'learnmorebtn': '',\r\n 'learnmorelink': '',\r\n 'order': 20,\r\n 'enabled': 1,\r\n 'ispopular': true,\r\n 'category': 'popular'\r\n },\r\n {\r\n 'name': 'Zoom',\r\n 'refkey': 'zoom',\r\n 'classname': 'zoom',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/zoom.png',\r\n 'modalimage': '/images/integrations/signupgenius-zoom.png',\r\n 'imagealt': 'Zoom',\r\n 'briefdesc': 'Add Zoom links directly to the location field of your sign up, making it easy for participants to join virtual meetings.',\r\n 'fulldesc': 'With our Zoom integration, you can link a Zoom meeting ID with a sign up slot or date, and then people can join video meetings directly from a sign up.',\r\n 'learnmorebtn': 'Learn More',\r\n 'learnmorelink': '/blog/now-integrated-with-zoom.cfm',\r\n 'order': 30,\r\n 'enabled': 1,\r\n 'ispopular': true,\r\n 'category': 'popular'\r\n },\r\n\r\n {\r\n 'name': 'AOL',\r\n 'refkey': 'aol',\r\n 'classname': 'aol',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/aol-logo.png',\r\n 'modalimage': '/images/integrations/aol-logo.png',\r\n 'imagealt': 'AOL',\r\n 'briefdesc': 'Import contacts from your AOL account into SignUpGenius.',\r\n 'fulldesc': 'While logged into your SignUpGenius account, you can import contacts to the Groups and Messages areas accessed on the left side of the account page. If you are creating and publishing a sign up, you may use the import feature at the final step when sending invites.',\r\n 'learnmorebtn': '',\r\n 'learnmorelink': '',\r\n 'order': 10,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'Constant Contact',\r\n 'refkey': 'constant-contact',\r\n 'classname': 'constant-contact',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/constant-contact-logo.png',\r\n 'modalimage': '/images/integrations/constant-contact-modal.jpg',\r\n 'imagealt': 'Constant Contact',\r\n 'briefdesc': 'Use our Zapier integration to create email lists in your Constant Contact account.',\r\n 'fulldesc': 'With SignUpGenius Pro and a Zapier account, you have the power to send information collected on a sign up to your Constant Contact account for better email marketing.',\r\n 'learnmorebtn': 'Learn More',\r\n 'learnmorelink': '/zapier',\r\n 'order': 20,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'GMail',\r\n 'refkey': 'gmail',\r\n 'classname': 'gmail',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/gmail-logo.png',\r\n 'modalimage': '/images/integrations/gmail-logo.png',\r\n 'imagealt': 'GMail',\r\n 'briefdesc': 'Import contacts from your Gmail account into SignUpGenius.',\r\n 'fulldesc': 'While logged into your SignUpGenius account, you can import contacts to the Groups and Messages areas accessed on the left side of the account page. If you are creating and publishing a sign up, you may use the import feature at the final step when sending invites.',\r\n 'learnmorebtn': '',\r\n 'learnmorelink': '',\r\n 'order': 30,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'Google Sheets',\r\n 'refkey': 'google-sheets',\r\n 'classname': 'google-sheets',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/google-sheets.png',\r\n 'modalimage': '/images/integrations/google-sheets-modal.jpg',\r\n 'imagealt': 'Google Sheets',\r\n 'briefdesc': 'Use our Zapier integration to export data collected on your sign up to Google Sheets.',\r\n 'fulldesc': 'With SignUpGenius Pro and a Zapier account, you have the ability to easily export data collected on your sign ups to Google Sheets.',\r\n 'learnmorebtn': 'Learn More',\r\n 'learnmorelink': '/zapier',\r\n 'order': 40,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'Mail Chimp',\r\n 'refkey': 'mail-chimp',\r\n 'classname': 'mail-chimp',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/mailchimp.jpg',\r\n 'modalimage': '/images/integrations/mail-chimp-modal.jpg',\r\n 'imagealt': 'Mail Chimp',\r\n 'briefdesc': 'Use our Zapier integration to create email lists in your MailChimp account from your SignUpGenius account.',\r\n 'fulldesc': 'With SignUpGenius Pro and a Zapier account, you have the ability to easily transfer data collected on your sign ups to your MailChimp database.',\r\n 'learnmorebtn': 'Learn More',\r\n 'learnmorelink': '/zapier',\r\n 'order': 50,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'Salesforce',\r\n 'refkey': 'salesforce',\r\n 'classname': 'salesforce',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/settings-salesforce.png',\r\n 'modalimage': '/images/integrations/salesforce-modal.jpg',\r\n 'imagealt': 'Salesforce',\r\n 'briefdesc': 'Import participant contact info collected on your sign up directly to your Salesforce account.',\r\n 'fulldesc': 'With SignUpGenius Pro and a Zapier account, you can easily transfer contact information collected on a sign up to your Salesforce account.',\r\n 'learnmorebtn': 'Learn More',\r\n 'learnmorelink': '/zapier',\r\n 'order': 60,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'Twitter',\r\n 'refkey': 'twitter',\r\n 'classname': 'twitter',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/twitter-logo.png',\r\n 'modalimage': '/images/integrations/twitter-logo.png',\r\n 'imagealt': 'Twitter',\r\n 'briefdesc': 'Increase exposure, volunteers, and engagement by sharing your sign ups with your Twitter followers and lists.',\r\n 'fulldesc': 'To share a sign up, simply post the URL link for the published sign up on your Twitter feed. Participants can also use the share button on the Thank You page after they sign up.',\r\n 'learnmorebtn': '',\r\n 'learnmorelink': '',\r\n 'order': 70,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'Windows',\r\n 'refkey': 'windows',\r\n 'classname': 'windows',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/windows-live-logo.png',\r\n 'modalimage': '/images/integrations/windows-live-logo.png',\r\n 'imagealt': 'Windows',\r\n 'briefdesc': 'Import contacts from your Windows Live (Outlook, Live, or Hotmail) account into SignUpGenius.',\r\n 'fulldesc': 'While logged into your SignUpGenius account, you can import contacts to the Groups and Messages areas accessed on the left side of the account page. If you are creating and publishing a sign up, you may use the import feature at the final step when sending invites.',\r\n 'learnmorebtn': '',\r\n 'learnmorelink': '',\r\n 'order': 80,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n {\r\n 'name': 'Yahoo',\r\n 'refkey': 'yahoo',\r\n 'classname': 'yahoo',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/yahoo.png',\r\n 'modalimage': '/images/integrations/yahoo.png',\r\n 'imagealt': 'Yahoo',\r\n 'briefdesc': 'Import contacts from your Yahoo account into SignUpGenius.',\r\n 'fulldesc': 'While logged into your SignUpGenius account, you can import contacts to the Groups and Messages areas accessed on the left side of the account page. If you are creating and publishing a sign up, you may use the import feature at the final step when sending invites.',\r\n 'learnmorebtn': '',\r\n 'learnmorelink': '',\r\n 'order': 90,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'other'\r\n },\r\n\r\n {\r\n 'name': 'Fundly',\r\n 'refkey': 'fundly',\r\n 'classname': 'fundly',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/fundly400.png',\r\n 'modalimage': '',\r\n 'imagealt': 'Fundly',\r\n 'briefdesc': 'Fundly is a crowdfunding platform that gives individuals and groups the power to fundraise quickly, without minimum raise fees. Organizers create a unique web page to share their story and collect donations, and can share their campaign on social media.',\r\n 'fulldesc': '',\r\n 'learnmorebtn': 'Learn more about the Fundly SignUpGenius integration',\r\n 'learnmorelink': '/blog/now-integrated-with-fundly.cfm',\r\n 'order': 10,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'partners'\r\n },\r\n {\r\n 'name': 'Membership Toolkit',\r\n 'refkey': 'membershiptoolkit',\r\n 'classname': 'membershiptoolkit',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/membershiptoolkit.png',\r\n 'modalimage': '',\r\n 'imagealt': 'Membership Toolkit',\r\n 'briefdesc': 'Membership Toolkit is an all-in-one premier solution for small organizations. The easy-to-use software includes tools to manage your contact database, membership, directory, online sales and donations, volunteers, communications, and financials.',\r\n 'fulldesc': '',\r\n 'learnmorebtn': 'Learn more about the Membership Toolkit SignUpGenius integration',\r\n 'learnmorelink': '/blog/now-integrated-with-membership-toolkit.cfm',\r\n 'order': 20,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'partners'\r\n },\r\n {\r\n 'name': 'Remind',\r\n 'refkey': 'remind',\r\n 'classname': 'remind',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/remind.png',\r\n 'modalimage': '',\r\n 'imagealt': 'Remind',\r\n 'briefdesc': 'Remind is a tool designed to simplify communication between teachers, parents and students. Use Remind to distribute sign ups and send prescheduled or real-time group or individual messages.',\r\n 'fulldesc': '',\r\n 'learnmorebtn': 'Learn more about the Remind SignUpGenius integration',\r\n 'learnmorelink': '/blog/signupgenius-integrated-with-remind.cfm',\r\n 'order': 30,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'partners'\r\n },\r\n {\r\n 'name': 'Instateam',\r\n 'refkey': 'instateam',\r\n 'classname': 'instateam',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/instateam-logo.png',\r\n 'modalimage': '',\r\n 'imagealt': 'Instateam',\r\n 'briefdesc': \"InstaTeam's advanced team management and connectivity solution automates and simplifies administrative tasks and team communication.\",\r\n 'fulldesc': '',\r\n 'learnmorebtn': 'Learn more about InstaTeam',\r\n 'learnmorelink': 'http://www.instateam.net/',\r\n 'order': 40,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'partners'\r\n },\r\n {\r\n 'name': 'MobileArq',\r\n 'refkey': 'mobile-arq',\r\n 'classname': 'mobile-arq',\r\n 'active': 1,\r\n 'logoimage': '/images/integrations/mobile-arq-logo.png',\r\n 'modalimage': '',\r\n 'imagealt': 'MobileArq',\r\n 'briefdesc': \"MobileArq is a software platform for parent organizations to manage their fundraising, directory and memberships. MobileArq's app for parents gives them their school community at their fingertips!\",\r\n 'fulldesc': '',\r\n 'learnmorebtn': 'Learn more about the MobileArq SignUpGenius integration',\r\n 'learnmorelink': 'https://mobilearq.com/signup-genius-integration-mobilearq-platform/',\r\n 'order': 50,\r\n 'enabled': 1,\r\n 'ispopular': 0,\r\n 'category': 'partners'\r\n }\r\n ]\r\n /* Basic template for adding a new integration record\r\n {\r\n 'name': '',\r\n 'refkey': '',\r\n 'classname': '',\r\n 'active': 1,\r\n 'logoimage': '',\r\n 'modalimage': '',\r\n 'imagealt': '',\r\n 'briefdesc': '',\r\n 'fulldesc': '',\r\n 'learnmorebtn': 'Learn More',\r\n 'learnmorelink': '',\r\n 'order': 10,\r\n 'enabled': 1,\r\n 'ispopular': 0\r\n }\r\n */\r\n return integrationJSON;\r\n }\r\n\r\n // **** BEGIN API CALLS ***** //\r\n\r\n , authorizeNPE: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.authorizeNPE', 30000);\r\n }\r\n , disableNPE: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.disableNPE', 15000);\r\n }\r\n , getlink: function(data) {\r\n return SUGUtilities.APISyncCall('post', '', data, 'c.getLink', 15000);\r\n }\r\n , getNPESignups: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.getNPESignups', 30000);\r\n }\r\n , getNPESyncTypes: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.getNPESyncTypes', 15000);\r\n }\r\n , isAppFeatureEnabled: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.isAppFeatureEnabled', 15000);\r\n }\r\n , memberHasNPEFeature: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.memberHasNPEFeature', 15000);\r\n }\r\n , saveNPESignups: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.saveNPESignups', 30000);\r\n }\r\n , saveNPESyncSettings: function(data){\r\n return service.xhrLoginHandler('post', '', data, 'm.saveNPESyncSettings', 15000);\r\n }\r\n , resyncNPE: function(data) {\r\n return service.xhrLoginHandler('post', '', data, 'm.resyncNPE', 15000);\r\n }\r\n , changeNPESyncType: function(data) {\r\n return service.xhrLoginHandler('post', '', data, 'm.changeNPESyncType', 15000);\r\n }\r\n , getNPESyncActivity: function(data) {\r\n return service.xhrLoginHandler('post', '', data, 'm.getNPESyncActivity', 15000);\r\n }\r\n , resetNPESyncJob: function(data) {\r\n return service.xhrLoginHandler('post', '', data, 'm.resetNPESyncJob', 15000);\r\n }\r\n\r\n // **** BEGIN SHARED FUNCTIONS ***** //\r\n\r\n };\r\n\r\n return service;\r\n }\r\n}());\r\n","(function () {\r\n\r\n SUGApp.config(['$routeProvider', '$compileProvider', function ($routeProvider, $compileProvider) {\r\n $compileProvider.aHrefSanitizationWhitelist(/^\\s*(http|https|mailto|data):/);\r\n $routeProvider\r\n .when('/', {\r\n templateUrl: '/view/members/integrations/manage-integrations.html'\r\n //DO NOT include controller or controllerAs here to prevent duplicate controller load, AND properly expose named scope in $parent\r\n })\r\n .when('/integration/:key/:mid?', {\r\n templateUrl: '/view/members/integrations/npe-manage.html'\r\n , controller: 'manageNonProfitEasyController'\r\n , resolve: {\r\n // confirm access to this page\r\n routeparams:['$route', function($route){ return $route.current.params; }]\r\n }\r\n })\r\n .otherwise({\r\n redirectTo: '/'\r\n });\r\n }]);\r\n\r\n}());\r\n\r\n(function () {\r\n /* Controller */\r\n SUGApp.controller('manageIntegrationsController', manageIntegrationsController);\r\n manageIntegrationsController.$inject = ['$scope','$filter','$location','$modal','$q','$timeout','$window','sugCacheFactory','SUGUtilities','errorService','globalService','integrationService'];\r\n function manageIntegrationsController( $scope, $filter, $location, $modal, $q, $timeout, $window, sugCacheFactory, SUGUtilities, errorService, globalService, integrationService ) {\r\n\r\n /**\r\n * Setup ControllerAs named scope.\r\n * We only need it for the statusmsg var,\r\n * so everything else can stay on $scope for simplicity\r\n */\r\n var sug_integrations = this;\r\n\r\n /* init vars */\r\n $scope.isProcessing = false;\r\n $scope.loaded=false;\r\n $scope.fullsecureurl = ( typeof window.globalcfg.secureURL != 'undefined' ) ? window.globalcfg.secureURL : 'https://www.signupgenius.com';\r\n var reg = /^https?:\\/\\//;\r\n $scope.secureurl = $scope.fullsecureurl.replace(reg,'');\r\n $scope.userdef = {};\r\n\r\n var _loginwindow = null;\r\n var _hasNpeTokens = null;\r\n var _npeLoginUrl = '';\r\n var _appFeatureName = 'NonProfitEasy-AppFeature';\r\n\r\n // integration data properties\r\n //TODO : load from new integration table\r\n $scope.integrations = [\r\n {\r\n name: 'NonProfitEasy'\r\n , classname: 'npe'\r\n , modalimage: '/images/integrations/settings-npe.png'\r\n , ispro: true\r\n , productlabel: 'enterprise'\r\n , productrank: 5\r\n , logoimage: '/images/integrations/settings-npe.png'\r\n , imagealt: 'Non-Profit Easy integration'\r\n , briefdesc: 'Connect your sign ups with NonProfitEasy CRM.'\r\n , fulldesc: 'NonProfitEasy is a CRM system that empowers nonprofits to easily and efficiently manage relationships. With a feature-rich platform and a user-friendly interface, NonProfitEasy will help you reach more donors, raise more funds, sell more memberships, and track more interactions and tasks than you ever thought possible.'\r\n , learnmoremodal: true\r\n , learnmorebtn: 'Read About Our Integration'\r\n , learnmorelink: '/blog/now-integrated-with-nonprofiteasy-crm.cfm'\r\n , managebtn: true\r\n , managebtnlabel: 'Sign in with NonProfitEasy'\r\n , managebtnshowicon: false\r\n , order: 1\r\n , controlled: true\r\n , enabled: true\r\n },\r\n {\r\n name: 'Fundly'\r\n , classname: 'fundly'\r\n , modalimage: '/images/integrations/settings-fundly.png'\r\n , ispro: false\r\n , productlabel: ''\r\n , productrank: 0\r\n , logoimage: '/images/integrations/settings-fundly.png'\r\n , imagealt: 'Fundly integration'\r\n , briefdesc: 'Connect a Fundly crowdfunding campaign with your sign ups.'\r\n , fulldesc: 'Fundly is a crowdfunding platform that gives individuals and groups the power to fundraise quickly, without minimum raise fees. Organizers create a unique web page to share their story and collect donations, and they can then share their campaign with donors.'\r\n , learnmoremodal: true\r\n , learnmorebtn: 'Read About Our Integration'\r\n , learnmorelink: '/blog/now-integrated-with-fundly.cfm'\r\n , managebtn: false\r\n , managebtnlabel: ''\r\n , managebtnshowicon: false\r\n , order: 2\r\n , controlled: false\r\n , enabled: true\r\n },\r\n {\r\n name: 'Zoom'\r\n , classname: 'zoom'\r\n , modalimage: '/images/integrations/settings-zoom.png'\r\n , ispro: false\r\n , productlabel: ''\r\n , productrank: 0\r\n , logoimage: '/images/integrations/settings-zoom.png'\r\n , imagealt: 'Zoom integration'\r\n , briefdesc: 'Add Zoom links directly to the location field of your sign ups.'\r\n , fulldesc: 'Zoom is a software built for enterprise video communications, with an easy, reliable cloud platform for video and audio conferencing, collaboration, chat, and webinars across mobile devices, desktops, telephones and room systems. Use Zoom to meet for conferences, training sessions, team meetings, classes and more.'\r\n , learnmoremodal: true\r\n , learnmorebtn: 'Read About Our Integration'\r\n , learnmorelink: '/blog/now-integrated-with-zoom.cfm'\r\n , managebtn: false\r\n , managebtnlabel: ''\r\n , managebtnshowicon: false\r\n , order: 3\r\n , controlled: false\r\n , enabled: true\r\n }\r\n ];\r\n\r\n sug_integrations.statusmsg = {\r\n type: 'success'\r\n , title: ''\r\n , text: ''\r\n , dismissable: true\r\n , show: false\r\n , noshadow: true\r\n , reset: true\r\n };\r\n\r\n /* These will be set by view controllers */\r\n $scope.strings = {\r\n errors: {\r\n errorsTitle: ''\r\n , errorsPleaseCorrect: 'Please correct the following issues:'\r\n },\r\n probadge: 'Paid feature'\r\n };\r\n\r\n //init error service\r\n $scope.es = errorService;\r\n $scope.es.init();\r\n\r\n\r\n /************************\r\n EVENT LISTENERS\r\n ************************/\r\n\r\n /**\r\n * Handler for processing Status\r\n */\r\n $scope.$on('isProcessing', function (event, processing) {\r\n $scope.isProcessing = processing;\r\n if ($scope.isProcessing) {\r\n SUGUtilities.showLoading('processing');\r\n }\r\n });\r\n\r\n /**\r\n * Scroll to top on successful route\r\n */\r\n $scope.$on('$routeChangeSuccess', function () {\r\n $window.scrollTo(0, 0);\r\n });\r\n\r\n /**\r\n * Event handler for NPE Login\r\n * Use generic JS event because NPE Login window is in its own SUGAPP scope\r\n * Generic event is also compatible with IE and other browsers\r\n */\r\n\t\tvar eventMethod = $window.addEventListener ? \"addEventListener\" : \"attachEvent\";\r\n\t\tvar messageEvent = eventMethod == \"attachEvent\" ? \"onmessage\" : \"message\";\r\n var npeLoginEventListener = $window[eventMethod];\r\n var windowOrigin = window.globalcfg.secureURL;\r\n\r\n\t\t// Listen for the postMessage from NPE Login indicating the login process is complete\r\n\t\tnpeLoginEventListener(messageEvent,function(e) {\r\n // Verify the origin of the message and the payload\r\n if( e.origin === windowOrigin\r\n && e.source !== 'undefined'\r\n && e.source.name.toString().includes(\"integration_npelogin\")\r\n && typeof e.data !== 'undefined'\r\n && typeof e.data === \"object\"\r\n && typeof e.data.status !== 'undefined'\r\n && typeof e.data.key !== 'undefined'\r\n ){\r\n try {\r\n if(e.data.status != 'login required'){\r\n //close the window\r\n _loginwindow.close();\r\n\r\n //route the page\r\n $timeout(function(){\r\n $location.path( \"/integration/\" + e.data.key.toString().toLowerCase().trim() + \"/\" + $scope.userdef.memberid );\r\n },10);\r\n } else {\r\n $scope.es.setError('manage_integrations', e.data.message );\r\n }\r\n } catch(err){\r\n // error for production\r\n $scope.es.setError('manage_integrations', 'Unexpected error occurred.' );\r\n\r\n // for debugging dump the error on non-production servers\r\n if( $scope.fullsecureurl != 'https://www.signupgenius.com' ){\r\n console.log('LOGIN WINDOW ERROR\\n',err);\r\n //console.log('EVENT\\n',e);\r\n //console.log('EXPECTED ORIGIN\\n',windowOrigin);\r\n }\r\n }\r\n }\r\n } );\r\n\r\n\r\n\r\n /**\r\n * *** START THE WORKFLOW ***\r\n */\r\n var init = function() {\r\n SUGUtilities.broadCast('isProcessing', true);\r\n loadData();\r\n };\r\n\r\n\r\n /************************\r\n MANAGE DATA\r\n ************************/\r\n\r\n /* Get Data */\r\n var loadData = function() {\r\n\r\n loadUserData()\r\n .then(function(userdef){\r\n $scope.userdef = SUGUtilities.lowerCaseKeys( userdef );\r\n\r\n isAppFeatureEnabled()\r\n .then(function(appFeatureEnabled){\r\n\r\n if( appFeatureEnabled ){\r\n\r\n //Update the NPE Integration\r\n var npeobj = $filter('filter')($scope.integrations, {classname: 'npe'});\r\n if( npeobj.length ){\r\n npeobj[0].enabled = appFeatureEnabled;\r\n }\r\n\r\n //determine if the Member has the feature or feature exception\r\n hasNpeFeature()\r\n .then(function(memberFeaturecheck){\r\n //Update user data for the NPE feature (simulates hasFeatures)\r\n $scope.userdef.features.nonprofiteasy = memberFeaturecheck;\r\n\r\n if(memberFeaturecheck){\r\n //If feature is enabled, check to see if the user already has an api tokens\r\n authorizeNPE('npe')\r\n .then(function(){\r\n $scope.loaded=true;\r\n });\r\n\r\n } else {\r\n $scope.loaded=true;\r\n SUGUtilities.broadCast('isProcessing', false);\r\n }\r\n\r\n }); // END hasNpeFeature\r\n\r\n } else {\r\n // IF appFeatureEnabled is false\r\n $scope.loaded=true;\r\n SUGUtilities.broadCast('isProcessing', false);\r\n }\r\n\r\n }); // END isAppFeatureEnabled\r\n\r\n }); // END loadUserData\r\n };\r\n\r\n var loadUserData = function(){\r\n var deferred = $q.defer();\r\n var userdef = sugCacheFactory.get('integration_userdef', {});\r\n\r\n if( !Object.keys(userdef).length ){\r\n if( typeof window.userdef !== 'undefined'){\r\n userdef.memberid = window.userdef.memberid;\r\n userdef.ownerid = window.userdef.ownerid;\r\n userdef.email = window.userdef.email;\r\n userdef.istrial = window.userdef.istrial;\r\n userdef.usertype = window.userdef.usertype;\r\n userdef.parentid = window.userdef.parentid;\r\n userdef.features = {};\r\n\r\n sugCacheFactory.set('integration_userdef',userdef);\r\n\r\n deferred.resolve(userdef);\r\n } else {\r\n //if userdef isn't available, we'll need to do a data call for memberinfo\r\n globalService.getMemberInformation()\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n deferred.reject();\r\n } else {\r\n // successfully retrieved memberInfo, update $scope\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n\r\n userdef.memberid = r.data.data.memberId;\r\n userdef.ownerid = r.data.data.parentid;\r\n userdef.email = r.data.data.email;\r\n userdef.istrial = r.data.data.istrialuser;\r\n userdef.usertype = r.data.data.productlabel;\r\n userdef.parentid = r.data.data.memberId != r.data.data.parentid ? 1 : 0;\r\n userdef.features = {};\r\n\r\n sugCacheFactory.set('integration_userdef',userdef);\r\n deferred.resolve(userdef);\r\n }\r\n });\r\n }\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Method checks to see if the application feature is enabled\r\n */\r\n var isAppFeatureEnabled = function(){\r\n var deferred = $q.defer();\r\n\r\n integrationService.isAppFeatureEnabled({featurename:_appFeatureName})\r\n .then(function(response){\r\n if(SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n $scope.loaded=true;\r\n deferred.reject();\r\n }else{\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if( r.data.success ){\r\n deferred.resolve(r.data.data.enabled);\r\n } else {\r\n if( r.data.message.length ){\r\n $scope.es.setError('manage_integrations', r.data.message[0] );\r\n } else {\r\n $scope.es.setError('manage_integrations', 'An error occurred checking the application feature' );\r\n }\r\n $scope.loaded=true;\r\n deferred.reject();\r\n }\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Method checks to see if the member has the feature or feature exception\r\n */\r\n var hasNpeFeature = function(){\r\n var deferred = $q.defer();\r\n\r\n integrationService.memberHasNPEFeature({ skipAppFeatureCheck:true }) //app feature check was run above\r\n .then(function(response){\r\n if(SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n $scope.loaded=true;\r\n deferred.reject();\r\n }else{\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if( r.data.success ){\r\n //save result in local factory\r\n sugCacheFactory.set('integration_hasNPEFeature', r.data.data.hasfeature);\r\n\r\n deferred.resolve(r.data.data.hasfeature);\r\n } else {\r\n if( r.data.message.length ){\r\n $scope.es.setError('manage_integrations', r.data.message[0] );\r\n } else {\r\n $scope.es.setError('manage_integrations', 'An error occurred checking the member feature' );\r\n }\r\n $scope.loaded=true;\r\n deferred.reject();\r\n }\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Helper method to return one of the Integration object models from the data array\r\n * @param {string} key - REQUIRED; the integration's classname value\r\n */\r\n var getIntegration = function( key ){\r\n var integration = $filter('filter')($scope.integrations, {'classname':key});\r\n return integration.length ? integration[0] : {};\r\n };\r\n\r\n /**\r\n * Helper method to determine if the user has valid OAuth Tokens for NPE\r\n * This is used to determine access to the manage NPE page\r\n * @param {string} key - REQUIRED; the integration's classname value\r\n */\r\n var authorizeNPE = function( key ){\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n var deferred = $q.defer();\r\n\r\n integrationService.authorizeNPE()\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n deferred.reject();\r\n } else {\r\n // successful - set some vars later use\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n var payload = r.data.data;\r\n\r\n sugCacheFactory.set('integration_npetokens',payload);\r\n\r\n _hasNpeTokens = payload.status != 'login required' ? true : false;\r\n _npeLoginUrl = payload.loginurl;\r\n\r\n if(_hasNpeTokens){\r\n //Update the NPE Manage button label\r\n var npeobj = $filter('filter')($scope.integrations, {classname: key});\r\n if( npeobj.length ){\r\n npeobj[0].managebtnshowicon = true;\r\n npeobj[0].managebtnlabel = 'Manage Integration';\r\n }\r\n }\r\n\r\n SUGUtilities.broadCast('isProcessing', false);\r\n deferred.resolve();\r\n }\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Method opens a new window to login and/or setup the NPE API\r\n * If the user already has API oath tokens stored this isn't necessary\r\n * @param {string} loginurl - REQUIRED; url for the NPE API login\r\n */\r\n var openNpeWindow = function( loginurl ){\r\n if( typeof loginurl != 'undefined' && loginurl.toString().length ){\r\n var winProps = 'width=490,height=785,left=' + ( (window.outerWidth - 490)/2 ) + ',top=100';\r\n var winName = 'integration_npelogin';\r\n _loginwindow = $window.open(loginurl, winName, winProps);\r\n }\r\n };\r\n\r\n\r\n\r\n /************************\r\n EXPOSED FUNCTIONS\r\n ************************/\r\n\r\n /**\r\n * Method to toggle Pro Badge\r\n * If Pro feature and a higher product level than the current user's product level\r\n * @param {object} integration - REQUIRED; A valid integration data object\r\n */\r\n $scope.showprobadge = function( integration ){\r\n var featurename = integration.name.toString().toLowerCase().trim();\r\n return integration.ispro && (\r\n //If the integration is enabled but not defined for the user (we are displaying the Learn More version of the block)\r\n (integration.enabled && typeof $scope.userdef.features[featurename] == 'undefined')\r\n ||\r\n //Or the feature IS defined and the user explicitly doesn't have it\r\n (typeof $scope.userdef.features[featurename] != 'undefined' && !$scope.userdef.features[featurename]))\r\n ? true : false;\r\n };\r\n\r\n /**\r\n * Method to toggle Learn More link\r\n * @param {object} integration - REQUIRED; A valid integration data object\r\n */\r\n $scope.showlearnmore = function( integration ){\r\n return integration.learnmoremodal ? true : false;\r\n };\r\n\r\n /**\r\n * Method to toggle Manage button\r\n * Manage Button is defined and the integration product level is at or below the current user's product level\r\n * @param {object} integration - REQUIRED; A valid integration data object\r\n */\r\n $scope.showmanage = function( integration ){\r\n var featurename = integration.name.toString().toLowerCase().trim();\r\n return ( integration.managebtn && (typeof $scope.userdef.features[featurename] != 'undefined' && $scope.userdef.features[featurename]) ) ? true : false;\r\n };\r\n\r\n /**\r\n * Method verifies API access and either opens the NPE management page\r\n * or spawns the NPE API login window\r\n * @param {string} key - REQUIRED; NPE integration reference key\r\n */\r\n $scope.manage = function( key ){\r\n /* If _hasNpeTokens is null (object in JS) and we don't have any errors,\r\n run authorizeNPE(). This shouldn't happen bc runs on page load. */\r\n if(!_hasNpeTokens && !$scope.es.getErrors('manage_integrations')){\r\n authorizeNPE( key )\r\n .then(function(){\r\n if( _hasNpeTokens ){\r\n $location.path( \"/integration/\" + key + '/' + $scope.userdef.memberid );\r\n } else {\r\n openNpeWindow( _npeLoginUrl );\r\n }\r\n });\r\n } else {\r\n //This block will almost always run when manage() is called\r\n if( _hasNpeTokens ){\r\n $location.path( \"/integration/\" + key + '/' + $scope.userdef.memberid );\r\n } else {\r\n openNpeWindow( _npeLoginUrl );\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Method loads data for the specified integration and\r\n * opens a learn more modal with additional details.\r\n * @param {string} key - REQUIRED; NPE integration reference key\r\n */\r\n $scope.learnmore = function( key ){\r\n var integration = getIntegration(key);\r\n\r\n if( Object.keys(integration).length ){\r\n var learnMoreBtn = '';\r\n\r\n if(typeof integration.learnmorelink !== 'undefined' && integration.learnmorelink.toString().length ){\r\n learnMoreBtn = '
' +\r\n '' + integration.learnmorebtn + '' +\r\n '
';\r\n }\r\n\r\n $.magnificPopup.open({\r\n mainClass: 'mfp-fade',\r\n removalDelay: 300,\r\n items: {\r\n src: \t'
' +\r\n '
' +\r\n '
' +\r\n '

' + integration.fulldesc + '

' + learnMoreBtn +\r\n '
'\r\n },\r\n type: 'inline'\r\n });\r\n\r\n }\r\n };\r\n\r\n /**\r\n * Updates the text of the Manage button for the specified integration\r\n * Added to the shared scope so other controllers can easily access the manage button label\r\n *\r\n * @param String key - Integration key for the integration to update\r\n * @param String label - New text label for the manage button\r\n */\r\n sug_integrations.updateManageBtn = function( key, label, showicon ){\r\n if( key.toString().length && label.toString().length ){\r\n showicon = typeof showicon == 'undefined' ? true : showicon;\r\n var integration = $filter('filter')($scope.integrations, {classname: key});\r\n if( integration.length ){\r\n integration[0].managebtnlabel = label.toString();\r\n integration[0].managebtnshowicon = showicon;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Resets the has tokens var after NPE is disabled\r\n */\r\n sug_integrations.resetNpeTokens = function(){\r\n _hasNpeTokens = null;\r\n };\r\n\r\n init();\r\n }\r\n}());","/* ----- Controller: manageNonProfitEasyController ----- */\r\n(function(){\r\n // add the controller\r\n SUGApp.controller('manageNonProfitEasyController', manageNonProfitEasyController);\r\n\r\n manageNonProfitEasyController.$inject = ['$scope','$filter','$location','$uibModal','$q','$sce','$templateCache','$timeout','$window','sugCacheFactory','SUGUtilities','errorService','globalService','integrationService','settingService','routeparams'];\r\n function manageNonProfitEasyController( $scope, $filter, $location, $uibModal, $q, $sce, $templateCache, $timeout, $window, sugCacheFactory, SUGUtilities, errorService, globalService, integrationService, settingService, routeparams ) {\r\n\r\n /* init vars */\r\n $scope.isProcessing = false;\r\n $scope.loaded = false;\r\n $scope.frmObj = {};\r\n $scope.frmObj.searchFilter = '';\r\n $scope.frmObj.checkAll = false;\r\n $scope.dateFormat = '';\r\n $scope.sync = {\r\n general: {}\r\n , volunteer: {slots:'ignoreall'}\r\n };\r\n $scope.frmDisableField = false;\r\n $scope.fullsecureurl = ( typeof window.globalcfg.secureURL != 'undefined' ) ? window.globalcfg.secureURL : 'https://www.signupgenius.com';\r\n var reg = /^https?:\\/\\//;\r\n $scope.secureurl = $scope.fullsecureurl.replace(reg,'');\r\n $scope.npeSignups = [];\r\n $scope.npeSignupsFiltered = [];\r\n $scope.synctypes = [];\r\n $scope.commentlen = $window.innerWidth < 1200 ? 28 : 58;\r\n $scope.hoursmax = 3;\r\n\r\n var _userdef = {};\r\n var signupsToSave = [];\r\n\r\n /* These will be set by view controllers */\r\n $scope.strings = {\r\n asc: 'ASC'\r\n , desc: 'DESC'\r\n , savebtn: 'Save'\r\n , cancelbtn: 'Cancel'\r\n , dateFormat: 'yyyy-MM-dd'\r\n , itemsPerPageInvalid: 'Items per page must be a number greater than 0.'\r\n , confirmTitle: 'Are you sure?'\r\n , syncConfirmBody: 'NonProfitEasy syncing will automatically apply to sign up activity that occurs after the sync is enabled. If there is sign up activity on this sign up that existed prior to enabling syncing or there was a gap in the data sync for some other reason, you can use this option to resync the data for this sign up.'\r\n , syncConfirmButton: 'Yes, Resync'\r\n , syncSuccessMsg: 'A resync was successfully scheduled for the sign up. It may take several minutes for the process to complete.'\r\n , disableConfirmBody: 'The NonProfitEasy integration will be disabled and data syncing will be stopped.'\r\n , disableConfirmButton: 'Yes, Disable'\r\n , disableSuccessMsg: 'Your NonProfitEasy integration has been disabled and syncing has stopped for all sign ups.'\r\n , saveVolSuccessMsg: 'The volunteering settings have been saved for the specific sign up.'\r\n , changeSyncConfirmBody: '

Sign up activity has already been synced using the \"!oldType!\" sync type. Changing the sync type will cause all previously synced sign up activity to be removed.

Syncing will continue based on the \"!newType!\" sync type from this point forward.

Perform a full resync if you need older sign up activity to be re-synced under the new sync type.

'\r\n , changeSyncConfirmButton: 'Yes, Change Sync Type'\r\n , noPermission: 'Sorry, you do not have permission to access that page.'\r\n , saveSuccessMsg: 'Your NonProfitEasy integration settings have been saved successfully.'\r\n , validationError: 'There was an issue saving the sign up titled \"!signupName!\". Please try again.'\r\n , saveSyncSettingsError: 'There was an issue saving the sync settings.'\r\n , syncTypeChgSuccessMsg: 'The sign up sync type has been changed successfully. It may take several minutes to see the change in your NonProfitEasy account.'\r\n , itemsPerPageInvalid: 'Items per page must be a number greater than 0.'\r\n , errorDetailTitle: 'Sync Error'\r\n , errorDetailConfirmBody: '

The following sync error occurred:

!errorText!

Please retry or contact support for assistance.

'\r\n , errorDetailConfirmButton: 'Retry Sync'\r\n , resetSyncJobSuccessMsg: 'The sign up sync task has been scheduled to re-run. Please wait several minutes for the process to complete.'\r\n , errors: {\r\n errorsTitle: ''\r\n , errorsPleaseCorrect: 'Please correct the following issues:'\r\n }\r\n , page: {\r\n title: 'NonProfitEasy Integration'\r\n , instructions: 'Select the sign ups that you would like to sync below. Any sign ups that are enabled for syncing will have participant activity synced from that point forward. If your sign up already has participant data that has not been synced, you can perform a refresh to sync that data on-demand. The sync type determines whether data is synced as general event or volunteering data within NonProfitEasy. For Volunteering sign ups, you can specify optional settings or use the defaults at the bottom of this page.'\r\n , disable: 'If you would like to remove this integration from all of your sign ups and stop syncing data to NonProfitEasy, you can '\r\n , disablelink: 'disable your NonProfitEasy integration'\r\n }\r\n , table: {\r\n title: 'Manage Sign Up Sync'\r\n , headersignup: 'Sign Up Title'\r\n , headersync: 'Last Sync Date'\r\n , headertype: 'Sync Type'\r\n , noData: 'There are no published sign ups. Once you have published one or more sign ups, they will be listed here.'\r\n , noFilteredData: 'No data matched your search criteria. Please try again.'\r\n , settingsicon: 'Volunteering Settings'\r\n , settingsdisabledicon: 'Not Available'\r\n , resyncicon: $sce.trustAsHtml('Resync this sign up')\r\n , resynciconpending: 'Pending'\r\n , resynciconerror: $sce.trustAsHtml('Error, click for details.')\r\n , rsvpresyncicon: $sce.trustAsHtml('Resync is not available for RSVP format sign ups. Please contact support for assistance.')\r\n , selecttype: 'Select sign up type'\r\n , selectitem: 'Sign up selected for syncing'\r\n , enabled: $sce.trustAsHtml('Enabled')\r\n , disabled: $sce.trustAsHtml('Disabled')\r\n , rsvptip: $sce.trustAsHtml('Syncing is not available for RSVP format sign ups. Please contact support for assistance.')\r\n }\r\n , general: {\r\n title: 'Integration Settings'\r\n , enablesync: 'Automatically enable syncing for all new sign ups'\r\n , synctip: 'If enabled, any newly created sign up will automatically be enabled for sync and the Sync Type will be set to Volunteering only if the Sign Up Type is set to Volunteering as well.'\r\n }\r\n , volunteer: {\r\n title: 'Volunteering Settings'\r\n , instructions: 'For volunteering sign ups, we calculate the volunteer hours using the start and end time on the sign up slots. When sign up slots do not have start and end times, what would you like to do'\r\n , modalspecific: ' for this specific sign up'\r\n , note: 'NOTE: You can apply sign up specific volunteer hour calculation rules using the volunteer settings gear icon in the grid view above. Sign up specific settings will override this default for any sign ups that have them.'\r\n , usedefault: 'Use default integration setting'\r\n , ignoreslots: 'Ignore those slots'\r\n , defaulthoursA: 'Assign a default of'\r\n , defaulthoursB: 'hours to those slots'\r\n , numberhours: 'Number of hours'\r\n , settingserror: 'An error occurred updating the volunteering settings for that sign up. Please try again.'\r\n }\r\n , settings: {\r\n itemsPerPage: 'Items Per Page'\r\n , saveButton: 'Save'\r\n , saveSettings: 'Save Settings'\r\n , settingsPopover: 'Settings'\r\n , sortBy: 'Sort By'\r\n , sortOrder: 'Sort Order'\r\n , categoryName: 'ManageIntegrations'\r\n , settingsName: 'manage_npe' //standard user settings\r\n , syncSettingsName: 'manage_npe_sync' //general and volunteer sync settings\r\n , titlelbl: 'Sign Up Title'\r\n , datelbl: 'Last Sync Date'\r\n , typelbl: 'Sync Type'\r\n }\r\n };\r\n\r\n $scope.statusmsg_npe = {\r\n type: 'success'\r\n , title: ''\r\n , text: ''\r\n , dismissable: true\r\n , show: false\r\n , noshadow: true\r\n , reset: true\r\n };\r\n\r\n /* Sort Options for Settings Popover */\r\n $scope.sortOptions = [\r\n { label: $scope.strings.asc , value: false },\r\n { label: $scope.strings.desc , value: true }\r\n ];\r\n\r\n /* UIB-Popover vars */\r\n $scope.popover = {\r\n popTrig: 'mouseenter',\r\n popPlacement: 'top',\r\n popDelay: 300,\r\n appendToBody: false\r\n };\r\n\r\n /* Pagination */\r\n $scope.recordCount = 0;\r\n $scope.pagination = {\r\n currentPage: 1,\r\n maxSize: 5,\r\n numPerPage: 5\r\n };\r\n\r\n $scope.getActivePopover = function(su){\r\n return su.isrsvp ? $scope.strings.table.rsvptip : su.isactive ? $scope.strings.table.enabled : $scope.strings.table.disabled;\r\n };\r\n\r\n $scope.getResyncPopover = function(su){\r\n var popover = '';\r\n if( su.isrsvp ){\r\n popover = $scope.strings.table.rsvpresyncicon;\r\n } else if( su.jobstatus == 'Pending'){\r\n popover = $scope.strings.table.resynciconpending;\r\n } else if( su.jobstatus == 'Error'){\r\n popover = $scope.strings.table.resynciconerror;\r\n } else {\r\n popover = $scope.strings.table.resyncicon;\r\n }\r\n return popover;\r\n };\r\n\r\n /* Pagination template with sugicons */\r\n $templateCache.put('template/pagination/pagination.html',\r\n \"\");\r\n\r\n\r\n //init error service\r\n $scope.es = errorService;\r\n $scope.es.init();\r\n\r\n\r\n // Handler for Processing Status\r\n $scope.$on('isProcessing', function (event, processing) {\r\n $scope.isProcessing = processing;\r\n if ($scope.isProcessing) {\r\n SUGUtilities.showLoading('processing');\r\n $scope.frmDisableField = true;\r\n } else {\r\n $scope.frmDisableField = false;\r\n }\r\n });\r\n\r\n /* Scroll to top on successful route */\r\n $scope.$on('$routeChangeSuccess', function(){\r\n $window.scrollTo(0,0);\r\n });\r\n\r\n /* Settings Dropdown Click Handler */\r\n $scope.dropDownClickEvent = function(e) {\r\n if( typeof e.target.title !== 'undefined'\r\n && e.target.title === $scope.strings.settings.saveSettings){\r\n saveUserSettings();\r\n } else {\r\n e.stopPropagation();\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Method starts the workflow\r\n */\r\n var init = function() {\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n //get the memberId from cache\r\n _hasNpeFeature = sugCacheFactory.get('integration_hasNPEFeature', false);\r\n\r\n if( _hasNpeFeature ){\r\n loadSettings();\r\n } else {\r\n //If we can't verify the NPE feature from the call on the initial page, check here\r\n integrationService.checkNPEAccess( routeparams )\r\n .then(function(hasAccess){\r\n if( hasAccess ){\r\n //save result in local factory\r\n sugCacheFactory.set('integration_hasNPEFeature', hasAccess);\r\n\r\n //clear any previous statuses on the main page\r\n $scope.$parent.sug_integrations.statusmsg.text = '';\r\n $scope.$parent.sug_integrations.statusmsg.show = false;\r\n $scope.$parent.sug_integrations.statusmsg.type = 'success';\r\n $scope.$parent.sug_integrations.updateManageBtn('npe','Manage Integration');\r\n\r\n loadSettings();\r\n } else {\r\n //If the session times out just re-call init\r\n init();\r\n }\r\n }, function(err){\r\n noAccess();\r\n });\r\n }\r\n\r\n };\r\n\r\n /**\r\n * Method handles when access is denied\r\n */\r\n var noAccess = function(){\r\n //set a warning message and sent the user back to the main integration settings page\r\n $scope.$parent.sug_integrations.statusmsg.text = $scope.strings.noPermission;\r\n $scope.$parent.sug_integrations.statusmsg.show = true;\r\n $scope.$parent.sug_integrations.statusmsg.type = 'danger';\r\n SUGUtilities.broadCast('isProcessing', false);\r\n $location.path( \"/\" );\r\n };\r\n\r\n\r\n /************************\r\n MANAGE DATA\r\n ************************/\r\n\r\n /**\r\n * Method loads data needed for the page in view\r\n */\r\n var loadSettings = function() {\r\n\r\n getDateAndTZFormats()\r\n .then(function(dateAndTZFormats){\r\n var arrDF = dateAndTZFormats.dateformats;\r\n for(var i = 0, len = arrDF.length; i < len; i++){\r\n var val = arrDF[i];\r\n if(val.selected){\r\n $scope.dateFormat = val.short.replace('mm', 'MM');\r\n $scope.strings.dateFormat = val.short;\r\n break;\r\n }\r\n }\r\n\r\n //load member form settings\r\n settingService.getSettingByName( $scope.strings.settings.settingsName, $scope.strings.settings.categoryName )\r\n .then(function(frmSettings){\r\n sugCacheFactory.set('frmObj', frmSettings);\r\n\r\n //load the NPE default sync settings\r\n settingService.getSettingByName( $scope.strings.settings.syncSettingsName, $scope.strings.settings.categoryName)\r\n .then(function(syncSettings){\r\n sugCacheFactory.set('sync', syncSettings);\r\n\r\n //update sync model with stored data or defaults\r\n $scope.sync = Object.keys(syncSettings).length ? syncSettings : { general:{} , volunteer:{slots:'ignoreall'} };\r\n //store the sync setting id\r\n $scope.syncSettingID = $scope.sync.hasOwnProperty('settingID') ? $scope.sync.settingID : 0;\r\n\r\n loadData();\r\n\r\n }); //getSettingByName sync\r\n }); //getSettingByName user\r\n }); //DateTime .then\r\n };\r\n\r\n /**\r\n * Method loads data needed for the page in view\r\n */\r\n var loadData = function(){\r\n //load frmObj from cache\r\n $scope.frmObj = sugCacheFactory.get('frmObj',{});\r\n\r\n //default the user settings\r\n prepareUserSettings();\r\n\r\n //get the memberId from cache\r\n _userdef = sugCacheFactory.get('integration_userdef', {});\r\n\r\n getNPESyncTypes()\r\n .then(function(types){\r\n // set syncTypes array\r\n $scope.synctypes = types;\r\n\r\n getNPESignups()\r\n .then(function(signups){\r\n // set NPE signups array\r\n $scope.npeSignups = signups;\r\n\r\n // after data is loaded do some processing\r\n for(var i=0, len=$scope.npeSignups.length; i 0 ){\r\n signupsToSave.push( angular.copy( $scope.npeSignups[i] ) );\r\n }\r\n\r\n //Convert the 1/0 to true/false for the UI\r\n $scope.npeSignups[i].isdefault = !!$scope.npeSignups[i].isdefault;\r\n $scope.npeSignups[i].isrsvp = !!$scope.npeSignups[i].isrsvp;\r\n $scope.npeSignups[i].isactive = $scope.npeSignups[i].isrsvp ? false : !!$scope.npeSignups[i].isactive;\r\n\r\n //if the lastsyncepoch date is empty, then populate it with lastsyncsuccessepoch for date sorting\r\n $scope.npeSignups[i].lastsyncepoch = !$scope.npeSignups[i].lastsyncepoch.toString().trim().length ? $scope.npeSignups[i].lastsyncsuccessepoch : $scope.npeSignups[i].lastsyncepoch;\r\n\r\n //Add a formatted sync date so we don't need to format date on the fly in the view or search code\r\n //2-step date conversion handles issue where if the regular epoch date is formatted, if its time is midnight, the date will appear one day behind\r\n var jstatus = $scope.npeSignups[i].jobstatus.toString().trim();\r\n var epoch = $scope.npeSignups[i].lastsyncepoch.toString();\r\n var epochsuccess = $scope.npeSignups[i].lastsyncsuccessepoch.toString();\r\n\r\n if(jstatus == 'Pending' || jstatus == 'Processing'){\r\n $scope.npeSignups[i].syncdateformatted = 'Pending';\r\n } else if( jstatus == 'Error' && epochsuccess.length ){\r\n var parsedDate = SUGUtilities.utcToLocalDate( new Date( $scope.npeSignups[i].lastsyncsuccessepoch ) );\r\n $scope.npeSignups[i].syncdateformatted = $filter(\"date\")(parsedDate, $scope.dateFormat);\r\n } else if( jstatus == 'Error' ){\r\n $scope.npeSignups[i].syncdateformatted = 'Error';\r\n } else if( epoch.length ){\r\n var parsedDate = SUGUtilities.utcToLocalDate( new Date( $scope.npeSignups[i].lastsyncepoch ) );\r\n $scope.npeSignups[i].syncdateformatted = $filter(\"date\")(parsedDate, $scope.dateFormat);\r\n } else {\r\n $scope.npeSignups[i].syncdateformatted = 'Never';\r\n }\r\n\r\n //format the result (error)\r\n if( $scope.npeSignups[i].jobresult.trim().length && $scope.npeSignups[i].jobresult.split(':').length > 1){\r\n $scope.npeSignups[i].jobresult = $scope.npeSignups[i].jobresult.split(':')[1];\r\n }\r\n }\r\n\r\n // prep $scope data\r\n $scope.npeSignupsFiltered = angular.copy( $scope.npeSignups );\r\n $scope.recordCount = $scope.npeSignupsFiltered.length;\r\n\r\n filterData();\r\n\r\n initializeDirtiness();\r\n $scope.loaded = true;\r\n SUGUtilities.broadCast('isProcessing', false);\r\n\r\n }); // END getNPESignups\r\n\r\n });\r\n\r\n };\r\n\r\n\r\n /**\r\n * Get the NPE Sign Up data\r\n */\r\n var getNPESignups = function(){\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n var deferred = $q.defer();\r\n\r\n integrationService.getNPESignups()\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n deferred.reject();\r\n } else {\r\n // successful - set some vars later use\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n deferred.resolve(r.data.data);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Method checks to see if the controlled features are enabled\r\n */\r\n var getNPESyncTypes = function(){\r\n var deferred = $q.defer();\r\n integrationService.getNPESyncTypes()\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n deferred.reject();\r\n } else {\r\n // successful, return types\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n deferred.resolve(r.data.data);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n\r\n /**\r\n * Get the user's preferred Date Format\r\n */\r\n var getDateAndTZFormats = function() {\r\n var deferred = $q.defer();\r\n var dateAndTZFormats = sugCacheFactory.get('dateAndTZFormats', {});\r\n\r\n if (Object.keys(dateAndTZFormats).length === 0){\r\n globalService.getDateAndTZFormats()\r\n .then(function (response) {\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if (r.data && r.data.data) {\r\n dateAndTZFormats = r.data.data;\r\n sugCacheFactory.set('dateAndTZFormats', dateAndTZFormats);\r\n }\r\n deferred.resolve(dateAndTZFormats);\r\n });\r\n } else {\r\n deferred.resolve(dateAndTZFormats);\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Method defaults user saves settings for sorting, filter, etc.\r\n */\r\n var prepareUserSettings = function() {\r\n $scope.settingID = $scope.frmObj.hasOwnProperty('settingID') ? $scope.frmObj.settingID : 0;\r\n\r\n if( !$scope.frmObj.hasOwnProperty('searchFilter') ){ $scope.frmObj.searchFilter = ''; }\r\n if( !$scope.frmObj.hasOwnProperty('orderColumn') ){ $scope.frmObj.orderColumn = 'title'; }\r\n if( !$scope.frmObj.hasOwnProperty('direction') ){ $scope.frmObj.direction = false; }\r\n if( !$scope.frmObj.hasOwnProperty('numPerPage') ){ $scope.frmObj.numPerPage = 5; }\r\n if( !$scope.frmObj.hasOwnProperty('checkAll') ){ $scope.frmObj.checkAll = false; }\r\n\r\n $scope.arrowDir = $scope.frmObj.direction ? 'sugicon-arrow-down-thick' : 'sugicon-arrow-up-thick';\r\n $scope.pagination.numPerPage = $scope.frmObj.numPerPage;\r\n };\r\n\r\n\r\n /* Column Direct Sort */\r\n $scope.setSort = function (columnKey) {\r\n $scope.frmObj.orderColumn = columnKey;\r\n $scope.frmObj.direction = !$scope.frmObj.direction;\r\n $scope.arrowDir = $scope.frmObj.direction ? 'sugicon-arrow-down-thick' : 'sugicon-arrow-up-thick';\r\n filterData();\r\n };\r\n\r\n /* Apply Settings/Filter */\r\n var filterData = function() {\r\n if ($scope.frmObj.searchFilter !== '') {\r\n $scope.npeSignupsFiltered = $filter('filter')($scope.npeSignups, $scope.searchNpeSignups);\r\n $scope.npeSignupsFiltered = $filter('orderBy')($scope.npeSignupsFiltered, $scope.frmObj.orderColumn, $scope.frmObj.direction);\r\n } else {\r\n $scope.npeSignupsFiltered = $filter('orderBy')($scope.npeSignups, $scope.frmObj.orderColumn, $scope.frmObj.direction);\r\n }\r\n $scope.recordCount = $scope.npeSignupsFiltered.length;\r\n\r\n // Apply Pagination\r\n if ($scope.npeSignupsFiltered.length) {\r\n var begin = ($scope.pagination.currentPage - 1) * parseInt($scope.pagination.numPerPage);\r\n var end = begin + parseInt($scope.pagination.numPerPage);\r\n $scope.npeSignupsFiltered = $scope.npeSignupsFiltered.slice(begin, end);\r\n\r\n // If end up with no results, recursively step back until we get valid paged results\r\n if (!$scope.npeSignupsFiltered.length && $scope.pagination.currentPage > 1) {\r\n $scope.pagination.currentPage--;\r\n filterData();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Method filters table data based on search value\r\n */\r\n $scope.searchNpeSignups = function(objSignup){\r\n if( !$scope.frmObj.searchFilter\r\n || objSignup.listid == $scope.frmObj.searchFilter\r\n || objSignup.title.toString().toLowerCase().indexOf( $scope.frmObj.searchFilter.toString().toLowerCase() ) > -1\r\n || objSignup.synctypekey.toString().toLowerCase().indexOf( $scope.frmObj.searchFilter.toString().toLowerCase() ) > -1\r\n || objSignup.syncdateformatted.toString().toLowerCase().indexOf( $scope.frmObj.searchFilter.toString().toLowerCase() ) > -1\r\n ){\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Method saves standard user settings\r\n */\r\n var saveUserSettings = function() {\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n var revertSettings = sugCacheFactory.get('frmObj');\r\n var settingsObj = {\r\n orderColumn: $scope.frmObj.orderColumn,\r\n direction: $scope.frmObj.direction,\r\n numPerPage: $scope.frmObj.numPerPage\r\n };\r\n sugCacheFactory.set( 'frmObj', settingsObj );\r\n\r\n settingService.saveSettings($scope.settingID, $scope.strings.settings.settingsName, $scope.strings.settings.categoryName, settingsObj)\r\n .then(\r\n function (settingId) {\r\n $scope.settingID = settingId;\r\n },\r\n function (response) {\r\n // revert settings\r\n $scope.frmObj = revertSettings;\r\n sugCacheFactory.set( 'frmObj', revertSettings );\r\n SUGUtilities.ajaxErrorHandler(response.data);\r\n }\r\n );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n };\r\n\r\n /**\r\n * Method saves default NPE Sync settings\r\n */\r\n var saveDefaultSyncSettings = function() {\r\n var backupSettings = sugCacheFactory.get('sync');\r\n var syncObj = angular.copy( $scope.sync );\r\n\r\n sugCacheFactory.set( 'sync', syncObj );\r\n\r\n settingService.saveSettings($scope.syncSettingID, $scope.strings.settings.syncSettingsName, $scope.strings.settings.categoryName, syncObj)\r\n .then(\r\n function (syncsettingid) {\r\n $scope.syncSettingID = syncsettingid;\r\n },\r\n function (response) {\r\n // revert sync settings\r\n $scope.sync = backupSettings;\r\n sugCacheFactory.set( 'sync', backupSettings );\r\n $scope.es.setError('manage_npe', $scope.strings.saveSyncSettingsError );\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Method determines if all the visible sign up checkboxes are checked\r\n */\r\n var isAllChecked = function(){\r\n var checkCount = 0;\r\n var suLength = $scope.npeSignups.length;\r\n\r\n //count the number of checked items\r\n for(var i=0; i 1 ){\r\n $scope.es.setError('manage_npe', genericError );\r\n }\r\n }\r\n\r\n if( $scope.es.hasErrors ){\r\n //toggle spinner and form disable\r\n SUGUtilities.broadCast('isProcessing', false);\r\n $window.scrollTo(0,0);\r\n deferred.reject();\r\n }else{\r\n deferred.resolve();\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Method updates the object array used for saving\r\n * Only save sign ups that meet the criteria of:\r\n * 1 - are marked active\r\n * 2 - have custom sync settings (ie. not default)\r\n * 3 - were saved previosuly (in case the user marks a default/active SU to inactive)\r\n */\r\n var updateSaveArray = function(){\r\n var deferred = $q.defer();\r\n\r\n for(var i=0, len=$scope.npeSignups.length; i 0\r\n || $scope.npeSignups[i].synctypekey != $scope.npeSignups[i].originalsynctypekey\r\n ){\r\n var su = angular.copy($scope.npeSignups[i]);\r\n\r\n //convert the booleans back to bit\r\n su.isdefault = su.isdefault ? 1 : 0;\r\n su.isactive = su.isactive ? 1 : 0;\r\n\r\n //default sync settings for newly checked signups\r\n su.syncsettings = su.syncsettings.toString().length ? su.syncsettings : '{}';\r\n\r\n //find the SU in the saveArray\r\n var lkup = $filter('filter')(signupsToSave, {listid: su.listid});\r\n\r\n if( lkup.length ){\r\n //if the SU is already in the array, just overrite it\r\n var idx = signupsToSave.indexOf( lkup[0] );\r\n signupsToSave[idx] = su ;\r\n } else {\r\n //otherwise add it\r\n signupsToSave.push( su );\r\n }\r\n }\r\n }\r\n\r\n deferred.resolve(true);\r\n return deferred.promise;\r\n };\r\n\r\n\r\n\r\n\r\n\r\n /************************\r\n EXPOSED FUNCTIONS\r\n ************************/\r\n\r\n $scope.disable = function(){\r\n //show confirmation modal\r\n SUGUtilities.showConfirmationModal({\r\n txtConfirmationTitle: $scope.strings.confirmTitle,\r\n txtConfirmationMessage: '' + $scope.strings.disableConfirmBody + '',\r\n lblYesButton: $scope.strings.disableConfirmButton,\r\n lblCancelButton: ''\r\n }, function () {\r\n SUGUtilities.broadCast('isProcessing', true);\r\n // Modal Confirmed\r\n integrationService.disableNPE({ memberid: _userdef.memberid } )\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // error deleting\r\n $scope.es.setError('manage_npe', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n $uibModalInstance.dismiss();\r\n } else {\r\n\r\n //after NPE is successfully disabled, remove the user's table settings and Default sync settings\r\n var idList = $scope.syncSettingID + ',' + $scope.settingID;\r\n settingService.deleteSettings({ ids:idList } )\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // error deleting\r\n $scope.es.setError('manage_npe', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n } else {\r\n //clear the table and default sync settings\r\n $scope.syncSettingID = 0;\r\n $scope.sync = {};\r\n sugCacheFactory.set( 'sync', $scope.sync );\r\n\r\n $scope.settingID = 0;\r\n $scope.frmObj = {};\r\n sugCacheFactory.set('frmObj',$scope.frmObj);\r\n\r\n //update the status message, manage button on the main integrations page, and reset the tokens\r\n $scope.$parent.sug_integrations.statusmsg.text = $scope.strings.disableSuccessMsg;\r\n $scope.$parent.sug_integrations.statusmsg.show = true;\r\n $scope.$parent.sug_integrations.updateManageBtn('npe','Sign in with NonProfitEasy',false);\r\n $scope.$parent.sug_integrations.resetNpeTokens();\r\n\r\n //wrapped in a $timeout to allow the $watchers time to digest before we reset diritness\r\n $timeout(function(){\r\n // reset dirtiness since everything has been cleared\r\n initializeDirtiness();\r\n\r\n //return to the main settings page\r\n SUGUtilities.broadCast('isProcessing', false);\r\n $location.path( \"/\" );\r\n },50);\r\n }\r\n });\r\n }\r\n });\r\n\r\n return;\r\n });\r\n };\r\n\r\n $scope.save = function(cb){\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n //clear any previous status messages\r\n $scope.statusmsg_npe.text = '';\r\n $scope.statusmsg_npe.show = false;\r\n // set callback if provided\r\n cb = cb || angular.noop;\r\n\r\n validateDefaultSyncSettings()\r\n .then(function(){\r\n\r\n validateSignupData()\r\n .then(function(){\r\n\r\n updateSaveArray()\r\n .then(function(){\r\n\r\n integrationService.saveNPESignups({ signups: signupsToSave , memberid: _userdef.memberid } )\r\n .then(function(response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // error deleting\r\n $scope.es.setError('manage_npe', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n $window.scrollTo(0,0);\r\n } else {\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if (r.data && r.data.success) {\r\n\r\n //Update the save array with the updated data;\r\n //Essentially this will pick up any new integrationSyncIds\r\n signupsToSave = r.data.data;\r\n\r\n //go through the saved records and apply those updated IDs to the displayed data\r\n for(var i=0, len=signupsToSave.length; i 1 ){\r\n\r\n var resyncicon = evt.currentTarget.childNodes[1];\r\n resyncicon.classList.add(\"sugicon-spin\");\r\n }\r\n */\r\n\r\n //show confirmation modal\r\n SUGUtilities.showConfirmationModal({\r\n txtConfirmationTitle: $scope.strings.confirmTitle,\r\n txtConfirmationMessage: '' + $scope.strings.syncConfirmBody + '',\r\n lblYesButton: $scope.strings.syncConfirmButton,\r\n lblCancelButton: ''\r\n }, function () {\r\n // Modal Confirmed\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n integrationService.resyncNPE( { signup: su , memberid: _userdef.memberid } )\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // error\r\n $scope.es.setError('manage_npe', SUGUtilities.getAjaxResponseMessage(response) );\r\n } else {\r\n // success - set status message.\r\n $scope.statusmsg_npe.text = $scope.strings.syncSuccessMsg;\r\n $scope.statusmsg_npe.show = true;\r\n }\r\n SUGUtilities.broadCast('isProcessing', false);\r\n\r\n //if the resync icon is spinning, stop it. Give a little delay so the user sees it.\r\n /* DECIDED TO NOT ANIMATE FOR NOW\r\n if( typeof resyncicon != 'undefined' ){\r\n $timeout(function() {\r\n resyncicon.classList.remove(\"sugicon-spin\");\r\n }, 1000);\r\n }\r\n */\r\n });\r\n return;\r\n }, function () {\r\n // Modal Dismissed\r\n //if the resync icon is spinning, stop it. Give a little delay so the user sees it.\r\n if( typeof resyncicon != 'undefined' ){\r\n $timeout(function() {\r\n resyncicon.classList.remove(\"sugicon-spin\");\r\n }, 1000);\r\n }\r\n return;\r\n });\r\n }\r\n };\r\n\r\n $scope.changesynctype = function( su ){\r\n if( su.syncdateformatted.toString().toLowerCase() != 'never' ){\r\n var newTypeKey = $filter('filter')($scope.synctypes, {typekey: su.synctypekey})[0].typekey;\r\n var newTypeLbl = newTypeKey == 'VOL' ? 'Volunteering' : 'General Event';\r\n var oldTypeLbl = newTypeLbl == 'General Event' ? 'Volunteering' : 'General Event';\r\n\r\n //show confirmation modal\r\n SUGUtilities.showConfirmationModal({\r\n txtConfirmationTitle: $scope.strings.confirmTitle,\r\n txtConfirmationMessage: '' +\r\n $filter('sugString')($scope.strings.changeSyncConfirmBody, [{'oldType': oldTypeLbl},{'newType': newTypeLbl}]) +\r\n '',\r\n lblYesButton: $scope.strings.changeSyncConfirmButton,\r\n lblCancelButton: ''\r\n }, function () {\r\n // Modal Confirmed\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n integrationService.changeNPESyncType( { signup: su, memberid: _userdef.memberid } )\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // error\r\n $scope.es.setError('manage_npe', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n } else {\r\n // success\r\n //update the sync settings\r\n toggleSuSettings( su, true );\r\n\r\n //update the database\r\n integrationService.saveNPESyncSettings({ signups: {\r\n listId:su.listid\r\n , syncTypeId:su.synctypeid\r\n , syncSettings:su.syncsettings\r\n , isActive:su.isactive ? 1 : 0\r\n , jobid:0 //Lumaverse service knows to treat 0 as 'NULL'\r\n }\r\n , memberid: _userdef.memberid\r\n })\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n } else {\r\n // success\r\n //Set status message\r\n $scope.statusmsg_npe.text = $scope.strings.syncTypeChgSuccessMsg;\r\n $scope.statusmsg_npe.show = true;\r\n }\r\n SUGUtilities.broadCast('isProcessing', false);\r\n });\r\n }\r\n });\r\n return;\r\n\r\n }, function () {\r\n // Modal Dismissed - reset select value\r\n su.synctypekey = newTypeKey == 'VOL' ? 'GEN' : 'VOL';\r\n return;\r\n });\r\n } else {\r\n // set dirty\r\n $scope.dirty = true;\r\n //update the settings\r\n toggleSuSettings( su );\r\n }\r\n };\r\n\r\n $scope.errordetails = function( su ){\r\n //show confirmation modal\r\n SUGUtilities.showConfirmationModal({\r\n txtConfirmationTitle: $scope.strings.errorDetailTitle,\r\n txtConfirmationMessage: '' +\r\n $sce.trustAsHtml( $filter('sugString')($scope.strings.errorDetailConfirmBody, [{'errorText': su.jobresult.trim()}]) ) +\r\n '',\r\n lblYesButton: $scope.strings.errorDetailConfirmButton,\r\n lblCancelButton: ''\r\n }, function () {\r\n SUGUtilities.broadCast('isProcessing', true);\r\n // Modal Confirmed\r\n integrationService.resetNPESyncJob({ jobid: su.jobid } )\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // error resetting job\r\n $scope.es.setError('manage_npe', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n $uibModalInstance.dismiss();\r\n } else {\r\n // success\r\n // Update the data models\r\n var updatedsu = angular.copy( su );\r\n updatedsu.jobstatus = 'Pending';\r\n updatedsu.syncdateformatted = 'Pending';\r\n updatedsu.lastjobstartdate = new Date().toLocaleString();\r\n updateSignUpModels( updatedsu );\r\n\r\n //Set status message\r\n $scope.statusmsg_npe.text = $scope.strings.resetSyncJobSuccessMsg;\r\n $scope.statusmsg_npe.show = true;\r\n }\r\n SUGUtilities.broadCast('isProcessing', false);\r\n $window.scrollTo(0,0);\r\n });\r\n\r\n return;\r\n });\r\n };\r\n\r\n /**\r\n * Updates properties of the sign up object based on other settings.\r\n * @param {object} su - REQUIRED; valid sign up object from the view's sign up sync table\r\n * @param {boolean} reset - Optional; Determins if the sync settings are reset; Used when Sync Type is changed by the user.\r\n */\r\n var toggleSuSettings = function( su, reset ){\r\n resetSettings = typeof reset != 'undefined' ? reset : false;\r\n\r\n su.synctypeid = su.synctypekey == 'VOL' ? 2 : 1;\r\n\r\n if( su.synctypekey == 'GEN' || resetSettings ){\r\n su.syncsettings = '{}';\r\n }\r\n if( su.syncsettings == '{}' ){\r\n su.isdefault = true;\r\n }\r\n\r\n //runs when the user changes the SU sync type\r\n if( resetSettings ){\r\n var resetsu = angular.copy( su );\r\n resetsu.jobstatus = \"\";\r\n resetsu.jobresult = \"\";\r\n resetsu.lastjobcompletedate = \"\";\r\n resetsu.lastjobstartdate = \"\";\r\n resetsu.lastsyncepoch = \"\";\r\n resetsu.lastsyncsuccessepoch = \"\";\r\n resetsu.syncdateformatted = \"Never\";\r\n updateSignUpModels( resetsu );\r\n }\r\n };\r\n\r\n /**\r\n * Updates (replaces) a sign up object in the view models\r\n * @param {object} su - REQUIRED; valid sign up object from the view's sign up sync table\r\n */\r\n var updateSignUpModels = function( su ){\r\n if( typeof su != 'undefined' && Object.keys(su).length ){\r\n //remove the original su object\r\n $scope.npeSignups = $filter('filter')($scope.npeSignups, function (o) {\r\n return o.listid !== su.listid;\r\n }, true);\r\n\r\n //replace it with the updated model\r\n $scope.npeSignups.push( su );\r\n\r\n //rebuild the view model\r\n $scope.npeSignupsFiltered = angular.copy( $scope.npeSignups );\r\n $scope.recordCount = $scope.npeSignupsFiltered.length;\r\n filterData();\r\n }\r\n };\r\n\r\n /**\r\n * Method determines if the sign up has an active volunteering settings gear\r\n * @param {object} su - REQUIRED; valid sign up object from the view's sign up sync table\r\n */\r\n $scope.disablegear = function( su ){\r\n return su.synctypekey != 'VOL';\r\n };\r\n\r\n /**\r\n * Method determines if the sign up settings gear is grey or not\r\n * @param {object} su - REQUIRED; valid sign up object from the view's sign up sync table\r\n */\r\n $scope.monogear = function( su ){\r\n return su.isdefault || su.synctypekey != 'VOL' ;\r\n };\r\n\r\n /**\r\n * Method determines if the length of the default hours form field should be 3 or 4 characters\r\n * Determine if the number is a flot by checking for the period, so 10.0 is valid\r\n */\r\n $scope.updatehours = function(){\r\n if( $scope.sync.volunteer.hours != 'undefined' && typeof $scope.sync.volunteer.hours != 'object'){\r\n $scope.hoursmax = $scope.sync.volunteer.hours.includes('.') ? 4 : 3;\r\n } else {\r\n $scope.hoursmax = 3;\r\n }\r\n };\r\n\r\n /**\r\n * Helper method to generate a link to a sign up page\r\n *\r\n * @urlid - String, Required - Valid urlid of the sign up the link is for\r\n */\r\n $scope.getSignupLink = function ( urlid ){\r\n var link = '';\r\n if( typeof urlid !== 'undefined' && urlid.toString().length ){\r\n link = $scope.fullsecureurl + '/go/' + urlid.toString().trim();\r\n }\r\n return link;\r\n };\r\n\r\n\r\n /************************\r\n MODAL: VOLUNTEER SETTINGS\r\n ************************/\r\n var showVolSettingsModal = function ( su ) {\r\n $uibModal.open({\r\n templateUrl: 'view/members/integrations/npe-modal-volunteer-settings.html',\r\n controller: 'npeVolSettingsModalController',\r\n resolve: {\r\n //pass data into the modal\r\n volsignup: function(){ return su; }\r\n , voltext: function(){ return $scope.strings.volunteer; }\r\n }\r\n }).result.then(function (response) {\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n //grab the updated settings\r\n var newsyncsettings = response.newsyncsettings;\r\n var suid = response.volsignupid;\r\n\r\n if( typeof suid == 'undefined'\r\n || typeof newsyncsettings == 'undefined'\r\n || !Object.keys( newsyncsettings ).length )\r\n {\r\n // error passing information back from the modal\r\n $scope.es.setError('manage_npe', $scope.strings.volunteer.settingserror );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n } else {\r\n //find the signup in the data model\r\n var volsignup = $filter('filter')($scope.npeSignups, {listid: suid})[0];\r\n\r\n //if new settings say use default, then clear the settings\r\n if( newsyncsettings.volunteer.slots == 'usedefault'){\r\n volsignup.syncsettings = \"{}\";\r\n volsignup.isdefault = true;\r\n } else {\r\n //esle update the sync settings to match the new changes\r\n volsignup.syncsettings = JSON.stringify( newsyncsettings );\r\n volsignup.isdefault = false;\r\n }\r\n\r\n //update the database\r\n integrationService.saveNPESyncSettings({ signups:{\r\n listId:volsignup.listid\r\n , syncTypeId:volsignup.synctypeid\r\n , syncSettings:volsignup.syncsettings\r\n , isActive:volsignup.isactive ? 1 : 0\r\n }\r\n , memberid: _userdef.memberid\r\n })\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.es.setError('manage_integrations', SUGUtilities.getAjaxResponseMessage(response) );\r\n } else {\r\n // success - set status message and return to integrations page.\r\n $scope.statusmsg_npe.text = $scope.strings.saveVolSuccessMsg;\r\n $scope.statusmsg_npe.show = true;\r\n }\r\n SUGUtilities.broadCast('isProcessing', false);\r\n });\r\n }\r\n }, function () {\r\n //rejected\r\n });\r\n };\r\n\r\n /************************\r\n MODAL: SYNC ACTIVITY MODAL\r\n ************************/\r\n $scope.showSyncActivity = function( su ) {\r\n $uibModal.open({\r\n templateUrl: 'view/members/integrations/npe-modal-sync-activity.html',\r\n controller: 'syncActivityModalController',\r\n resolve: {\r\n //pass data into the modal\r\n signup: function(){ return su; }\r\n }\r\n });\r\n };\r\n\r\n\r\n /************************\r\n WATCHERS - DO NOT PREFIX $watchCollection vars w/ $scope (ex. $scope.frmObj)\r\n ************************/\r\n\r\n /**\r\n * WATCHER: slots; clear defaulthours when ignoreall is seleced\r\n */\r\n $scope.$watchCollection('sync.volunteer.slots', function (nVal, oVal) {\r\n if (nVal != oVal\r\n && typeof $scope.sync.volunteer !== 'undefined'\r\n && $scope.sync.volunteer.slots == 'ignoreall'\r\n ){\r\n // reset defaulthours\r\n $scope.sync.volunteer.hours = null;\r\n }\r\n // set dirty\r\n $scope.dirty = true;\r\n });\r\n\r\n /**\r\n * WATCHER: defaulthours; maintain numeric decimal value only\r\n */\r\n $scope.$watchCollection('sync.volunteer.hours', function (nVal, oVal) {\r\n if (nVal != oVal\r\n && typeof $scope.sync.volunteer !== 'undefined'\r\n ){\r\n // force min/max fields to be numeric decimal\r\n $scope.sync.volunteer.hours = isNaN( parseFloat($scope.sync.volunteer.hours) ) ? '' : parseFloat($scope.sync.volunteer.hours);\r\n\r\n // if hours has a value make sure the radio button is checked\r\n if( $scope.sync.volunteer.hours != '' ){\r\n $scope.sync.volunteer.slots = 'defaulthours';\r\n }\r\n // set dirty\r\n $scope.dirty = true;\r\n }\r\n });\r\n\r\n /**\r\n * WATCHER: Pagination\r\n */\r\n $scope.$watch('pagination.currentPage + pagination.numPerPage', function () {\r\n filterData();\r\n });\r\n\r\n /**\r\n * WATCHER: frmObj for sorting, filtering, search, setting changes\r\n */\r\n $scope.$watchCollection('frmObj', function (nVal, oVal) {\r\n var newVal = angular.copy(nVal);\r\n var oldVal = angular.copy(oVal);\r\n\r\n // validate number per page (stop processing if empty or invalid since we must have it for proper filter/sort)\r\n if (!$scope.frmObj.numPerPage || $scope.frmObj.numPerPage.toString().trim() === '') {\r\n return;\r\n } else if (!(angular.isNumber(~~$scope.frmObj.numPerPage) && isFinite(~~$scope.frmObj.numPerPage)) || ~~$scope.frmObj.numPerPage <= 0) {\r\n SUGUtilities.showMagnificAlert($scope.strings.itemsPerPageInvalid, 'error', '', 'Sorry!');\r\n $scope.frmObj.numPerPage = oldVal.numPerPage;\r\n return;\r\n }\r\n\r\n /* Apply Filter - Filter through the data Array, NOT the filtered data */\r\n $scope.npeSignupsFiltered = $filter('orderBy')($scope.npeSignups, $scope.frmObj.orderColumn, $scope.frmObj.direction);\r\n\r\n /* Update Settings in Factory */\r\n sugCacheFactory.set( 'frmObj', angular.copy($scope.frmObj) );\r\n prepareUserSettings();\r\n\r\n /* Apply Search Filter if Present - Filter through the data Array, NOT the filtered data */\r\n if (newVal.searchFilter != oldVal.searchFilter) {\r\n $scope.npeSignupsFiltered = $filter('filter')($scope.npeSignups, $scope.searchNpeSignups);\r\n $scope.npeSignupsFiltered = $filter('orderBy')($scope.npeSignupsFiltered, $scope.frmObj.orderColumn, $scope.frmObj.direction);\r\n $scope.recordCount = $scope.npeSignupsFiltered.length;\r\n } else {\r\n filterData();\r\n }\r\n });\r\n\r\n /**\r\n * WATCHER: Integration Settings checkbox\r\n */\r\n $scope.$watch('sync.general.syncall', function (nVal, oVal) {\r\n if( nVal != oVal && typeof oVal !== 'undefined' ){\r\n $scope.dirty = true;\r\n }\r\n });\r\n\r\n /**\r\n * BINDING: Sign Up Title Truncation\r\n */\r\n angular.element($window).bind('resize', function() {\r\n $timeout(function() {\r\n //SM/MD: 28 chars / LG: 58 chars\r\n $scope.commentlen = $window.innerWidth < 1200 ? 28 : 58;\r\n });\r\n });\r\n\r\n /************\r\n * DIRTINESS HANDLING\r\n ************/\r\n /**\r\n * Set / reset dirtiness\r\n *\r\n */\r\n var initializeDirtiness = function() {\r\n $scope.dirty = false;\r\n };\r\n /**\r\n * If navigating away per internal menus, confirm discard\r\n *\r\n */\r\n // set areas to watch for click\r\n var $navigateContainers = $('.profile-settings--tabs, header, #protoolsbar, footer, .sub-footer');\r\n var $clickTargets = $('button, a',$navigateContainers).not('.dropdown-toggle');\r\n // gets corresponding link for subsequent fire\r\n var findClosestClickableElement = function (element,includeElement) {\r\n if(includeElement && element.click){\r\n return element;\r\n } else {\r\n while ((element = element.parentElement) && !element.click);\r\n return element;\r\n }\r\n };\r\n /**\r\n * Click interceptor to test for dirtiness and warn user of discard\r\n *\r\n */\r\n var clickInterceptHandler = function(e){\r\n if ( $scope.dirty ) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n // make sure it is okay to abandon changes\r\n confirmAbandonChanges()\r\n .then(function ( response ) {\r\n if( response ){\r\n // saving changes\r\n var callback = function(){\r\n // turn off the click intercept\r\n $clickTargets.off('click',clickInterceptHandler);\r\n // trigger the click again on nearest HTMLElement\r\n findClosestClickableElement(e.target,true).click();\r\n };\r\n $scope.save(callback);\r\n }\r\n else {\r\n // turn off the click intercept\r\n $clickTargets.off('click',clickInterceptHandler);\r\n // trigger the click again on nearest HTMLElement\r\n findClosestClickableElement(e.target,true).click();\r\n }\r\n }, function () {\r\n // canceled\r\n return false;\r\n });\r\n }\r\n };\r\n $clickTargets.on('click',clickInterceptHandler);\r\n\r\n /**\r\n * Confirm whether to abandon changes.\r\n *\r\n * @returns {Promise}\r\n */\r\n var confirmAbandonChanges = function() {\r\n var deferred = $q.defer();\r\n\r\n // confirm if user wants to abandon changes\r\n SUGUtilities.showConfirmationModal({\r\n txtConfirmationTitle: 'Warning!',\r\n txtConfirmationMessage: 'You have unsaved changes.',\r\n lblYesButton: 'Save & Proceed',\r\n lblAltButton: 'Discard & Proceed',\r\n lblCancelButton: ''\r\n },\r\n function ( response ) { // fnConfirmed\r\n if( response ){\r\n // save and continue\r\n deferred.resolve(true);\r\n }\r\n else {\r\n // discard & continue\r\n deferred.resolve(false);\r\n }\r\n },\r\n function () { //fnDismissed\r\n deferred.reject(false);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n init();\r\n }\r\n}());\r\n\r\n\r\n\r\n\r\n/**************************************************\r\n MODAL CONTROLLER: npeVolSettingsModalController\r\n**************************************************/\r\n(function(){\r\n // add the controller\r\n SUGApp.controller('npeVolSettingsModalController', npeVolSettingsModalController);\r\n npeVolSettingsModalController.$inject = [ '$scope','$uibModalInstance','$filter','$location','$q','SUGUtilities','sugCacheFactory','errorService','globalService','integrationService','volsignup','voltext' ];\r\n function npeVolSettingsModalController( $scope, $uibModalInstance, $filter, $location, $q, SUGUtilities, sugCacheFactory, errorService, globalService, integrationService, volsignup, voltext ){\r\n\r\n $scope.isProcessingModal = false;\r\n $scope.frmDisableField = false;\r\n $scope.su = volsignup;\r\n $scope.sync = {};\r\n $scope.hoursmax = 3;\r\n\r\n /* View Specific Modal Strings */\r\n $scope.strings = {\r\n buttonSave: 'Save'\r\n , errors: {\r\n errorsTitle: ''\r\n , errorsPleaseCorrect: 'Please correct the following issues:'\r\n }\r\n };\r\n\r\n /* Volunteer text is the same, so it's shared from main controller */\r\n $scope.strings['volunteer'] = voltext;\r\n\r\n /* init error service */\r\n $scope.modal_es = errorService.newInstance();\r\n $scope.modal_es.init();\r\n $scope.modal_es.clearErrors();\r\n\r\n\r\n /* uibPopover vars */\r\n $scope.popover = {\r\n popTrig: 'mouseenter',\r\n popPlacement: 'top',\r\n popDelay: 300,\r\n appendToBody: false\r\n };\r\n\r\n //form model\r\n $scope.frm = {\r\n commentlen: 57\r\n };\r\n\r\n // Handler for Processing Status\r\n $scope.$on('isProcessingModal', function (event, isProcessingModal) {\r\n $scope.isProcessingModal = isProcessingModal;\r\n\r\n disableForm(isProcessingModal);\r\n\r\n if ($scope.isProcessingModal) {\r\n SUGUtilities.showLoading('processing');\r\n }\r\n });\r\n\r\n /**\r\n * Start page flow\r\n */\r\n var init = function(){\r\n //parse the sync settings\r\n if( $scope.su.syncsettings.toString().length && $scope.su.syncsettings != '{}' ){\r\n $scope.sync = JSON.parse( $scope.su.syncsettings );\r\n } else {\r\n //Note: \"usedefault\" isn't saved back to the database, its only used in the form.\r\n $scope.sync = JSON.parse( '{\"volunteer\":{\"slots\":\"usedefault\",\"hours\":\"\"}}' );\r\n }\r\n };\r\n\r\n //manage disabling the form\r\n var disableForm = function (blnDisabled) {\r\n $scope.frmDisableField = blnDisabled;\r\n };\r\n\r\n /**\r\n * Method verifies the custom volunteer sync settings\r\n */\r\n var validateVolSettings = function(){\r\n var deferred = $q.defer();\r\n\r\n //clear errors and error classes\r\n $scope.modal_es.clearErrors();\r\n\r\n //verify the user provided a valid value for default hours\r\n if($scope.sync.volunteer.slots == 'defaulthours'){\r\n if( isNaN( parseFloat($scope.sync.volunteer.hours) ) ){\r\n $scope.modal_es.setError('err_volsettings', 'no msg');\r\n $scope.modal_es.setError('modal_field_hours', 'no msg');\r\n }\r\n }\r\n\r\n if( $scope.modal_es.hasErrors ){\r\n //toggle spinner and form disable\r\n SUGUtilities.broadCast('isProcessingModal', false);\r\n deferred.reject();\r\n }else{\r\n deferred.resolve();\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n\r\n /************************\r\n MODAL EXPOSED FUNCTIONS\r\n ************************/\r\n $scope.dismiss = function () {\r\n $uibModalInstance.dismiss(false);\r\n };\r\n\r\n /**\r\n * Method determines if the length of the default hours form field should be 3 or 4 characters\r\n * Determine if the number is a flot by checking for the period, so 10.0 is valid\r\n */\r\n $scope.updatehours = function(){\r\n if( $scope.sync.volunteer.hours != 'undefined' && typeof $scope.sync.volunteer.hours != 'object'){\r\n $scope.hoursmax = $scope.sync.volunteer.hours.includes('.') ? 4 : 3;\r\n } else {\r\n $scope.hoursmax = 3;\r\n }\r\n };\r\n\r\n /**\r\n * Return form data to the main controller\r\n * No need for validations as the form is only radio controls\r\n */\r\n $scope.save = function(){\r\n SUGUtilities.broadCast('isProcessingModal', true);\r\n\r\n validateVolSettings()\r\n .then(function(){\r\n $uibModalInstance.close({\r\n newsyncsettings: $scope.sync\r\n , volsignupid: $scope.su.listid\r\n });\r\n });\r\n\r\n SUGUtilities.broadCast('isProcessingModal', false);\r\n };\r\n\r\n\r\n /************************\r\n MODAL WATCHERS\r\n ************************/\r\n /**\r\n * WATCHER: slots; clear defaulthours when ignoreall is seleced\r\n */\r\n $scope.$watchCollection('sync.volunteer.slots', function (nVal, oVal) {\r\n if (nVal != oVal\r\n && typeof $scope.sync.volunteer !== 'undefined'\r\n && ( $scope.sync.volunteer.slots == 'usedefault' || $scope.sync.volunteer.slots == 'ignoreall' )\r\n ){\r\n // reset defaulthours\r\n $scope.sync.volunteer.hours = null;\r\n }\r\n });\r\n\r\n /**\r\n * WATCHER: defaulthours; maintain numeric decimal value only\r\n */\r\n $scope.$watchCollection('sync.volunteer.hours', function (nVal, oVal) {\r\n if (nVal != oVal\r\n && typeof $scope.sync.volunteer !== 'undefined'\r\n ){\r\n // force min/max fields to be numeric decimal\r\n $scope.sync.volunteer.hours = isNaN( parseFloat($scope.sync.volunteer.hours) ) ? '' : parseFloat($scope.sync.volunteer.hours);\r\n\r\n // if hours has a value make sure the radio button is checked\r\n if( $scope.sync.volunteer.hours != '' ){\r\n $scope.sync.volunteer.slots = 'defaulthours';\r\n }\r\n }\r\n });\r\n\r\n init();\r\n }\r\n}());","/* ----- Controller: syncActivityModalController ----- */\r\n(function(){\r\n // add the controller\r\n SUGApp.controller('syncActivityModalController', syncActivityModalController);\r\n syncActivityModalController.$inject = ['$scope','$uibModalInstance','$filter','$q','errorService','globalService','integrationService','sugCacheFactory','SUGUtilities','signup'];\r\n function syncActivityModalController( $scope, $uibModalInstance, $filter, $q, errorService, globalService, integrationService, sugCacheFactory, SUGUtilities, signup ){\r\n\r\n $scope.isProcessingSaModal = false;\r\n $scope.loaded = false;\r\n $scope.su = signup;\r\n $scope.dateFormat = '';\r\n $scope.commentlen = 46;\r\n $scope.colspan = 4;\r\n $scope.jqActivity = [];\r\n $scope.jqActivityFiltered = [];\r\n\r\n //form model\r\n $scope.frm = {\r\n searchFilter: ''\r\n };\r\n\r\n /* View Specific Modal Strings */\r\n $scope.strings = {\r\n title: 'Sign Up Sync Activity'\r\n , errors: {\r\n errorsTitle: ''\r\n , errorsPleaseCorrect: 'Please correct the following issues:'\r\n }\r\n , table: {\r\n headerdate: 'Date'\r\n , headertype: 'Action'\r\n , headerstatus: 'Status'\r\n , headerresult: 'Result'\r\n , noData: 'There is no sync activity for this sign up.'\r\n , noFilteredData: 'No data matched your search criteria. Please try again.'\r\n }\r\n , itemsPerPageInvalid: 'Items per page must be a number greater than 0.'\r\n };\r\n\r\n /* init error service */\r\n $scope.samodal_es = errorService.newInstance();\r\n $scope.samodal_es.init();\r\n $scope.samodal_es.clearErrors();\r\n\r\n /* uibPopover vars */\r\n $scope.popover = {\r\n popTrig: 'mouseenter',\r\n popPlacement: 'top',\r\n popDelay: 300,\r\n appendToBody: false\r\n };\r\n\r\n /* Pagination */\r\n $scope.recordCount = 0;\r\n $scope.pagination = {\r\n currentPage: 1,\r\n maxSize: 5,\r\n numPerPage: 5\r\n };\r\n\r\n\r\n /**\r\n * Start page flow\r\n */\r\n var init = function(){\r\n //load date/time settings\r\n dateTZFormats = sugCacheFactory.get('dateAndTZFormats', {});\r\n if( Object.keys(dateTZFormats).length ){\r\n updateDateAndTZSettings( dateTZFormats );\r\n loadData();\r\n } else {\r\n getDateAndTZFormats()\r\n .then(function(dateAndTZFormats){\r\n updateDateAndTZSettings( dateAndTZFormats );\r\n loadData();\r\n }); // END getDateAndTZFormats\r\n }\r\n };\r\n\r\n /**\r\n * Method loads data needed for the page in view\r\n */\r\n var loadData = function(){\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n //load frmObj from cache\r\n $scope.frm = sugCacheFactory.get('frm',{});\r\n\r\n //default the settings\r\n prepareUserSettings();\r\n\r\n getNPESyncActivity( $scope.su.listid )\r\n .then(function(activity){\r\n // set activity array\r\n $scope.jqActivity = activity;\r\n\r\n // after data is loaded do some processing\r\n for(var i=0, len=$scope.jqActivity.length; i 1){\r\n $scope.jqActivity[i].result = $scope.jqActivity[i].result.split(':')[1];\r\n }\r\n }\r\n\r\n // prep $scope data\r\n $scope.jqActivityFiltered = angular.copy( $scope.jqActivity );\r\n $scope.recordCount = $scope.jqActivityFiltered.length;\r\n\r\n filterData();\r\n\r\n $scope.loaded = true;\r\n SUGUtilities.broadCast('isProcessing', false);\r\n\r\n }); // END getNPESyncActivity\r\n };\r\n\r\n /**\r\n * Get the NPE Sign Up sync activity data\r\n */\r\n var getNPESyncActivity = function( suid ){\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n var deferred = $q.defer();\r\n\r\n integrationService.getNPESyncActivity( {listid: suid} )\r\n .then(function (response) {\r\n if (SUGUtilities.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n $scope.samodal_es.setError('err_syncactivity', SUGUtilities.getAjaxResponseMessage(response) );\r\n SUGUtilities.broadCast('isProcessing', false);\r\n deferred.reject();\r\n } else {\r\n // successful - set some vars later use\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n deferred.resolve(r.data.data);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Get the user's preferred Date Format\r\n */\r\n var getDateAndTZFormats = function() {\r\n var deferred = $q.defer();\r\n var dateAndTZFormats = sugCacheFactory.get('dateAndTZFormats', {});\r\n if (Object.keys(dateAndTZFormats).length === 0){\r\n globalService.getDateAndTZFormats()\r\n .then(function (response) {\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if (r.data && r.data.data) {\r\n dateAndTZFormats = r.data.data;\r\n sugCacheFactory.set('dateAndTZFormats', dateAndTZFormats);\r\n }\r\n deferred.resolve(dateAndTZFormats);\r\n });\r\n } else {\r\n deferred.resolve(dateAndTZFormats);\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n var updateDateAndTZSettings = function( dtz ){\r\n var arrDF = dtz.dateformats;\r\n for(var i = 0, len = arrDF.length; i < len; i++){\r\n var val = arrDF[i];\r\n if(val.selected){\r\n $scope.dateFormat = val.short.replace('mm', 'MM');\r\n $scope.strings.dateFormat = val.short;\r\n break;\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Processing event listener.\r\n */\r\n $scope.$on('isProcessing', function (event, processing) {\r\n $scope.isProcessingSaModal = processing;\r\n if ($scope.isProcessingSaModal) {\r\n SUGUtilities.showLoading('processing');\r\n $scope.frmDisableField = true;\r\n } else {\r\n $scope.frmDisableField = false;\r\n }\r\n });\r\n\r\n /**\r\n * Method defaults user saves settings for sorting, filter, etc.\r\n */\r\n var prepareUserSettings = function() {\r\n if( !$scope.frm.hasOwnProperty('searchFilter') ){ $scope.frm.searchFilter = ''; }\r\n if( !$scope.frm.hasOwnProperty('orderColumn') ){ $scope.frm.orderColumn = 'jobdateepoch'; }\r\n if( !$scope.frm.hasOwnProperty('direction') ){ $scope.frm.direction = true; }\r\n if( !$scope.frm.hasOwnProperty('numPerPage') ){ $scope.frm.numPerPage = 5; }\r\n $scope.arrowDir = $scope.frm.direction ? 'sugicon-arrow-down-thick' : 'sugicon-arrow-up-thick';\r\n $scope.pagination.numPerPage = $scope.frm.numPerPage;\r\n };\r\n\r\n /* Apply Settings/Filter */\r\n var filterData = function() {\r\n if ($scope.frm.searchFilter !== '') {\r\n $scope.jqActivityFiltered = $filter('filter')($scope.jqActivity, searchSyncActivity);\r\n $scope.jqActivityFiltered = $filter('orderBy')($scope.jqActivityFiltered, $scope.frm.orderColumn, $scope.frm.direction);\r\n } else {\r\n $scope.jqActivityFiltered = $filter('orderBy')($scope.jqActivity, $scope.frm.orderColumn, $scope.frm.direction);\r\n }\r\n $scope.recordCount = $scope.jqActivityFiltered.length;\r\n\r\n // Apply Pagination\r\n if ($scope.jqActivityFiltered.length) {\r\n var begin = ($scope.pagination.currentPage - 1) * parseInt($scope.pagination.numPerPage);\r\n var end = begin + parseInt($scope.pagination.numPerPage);\r\n $scope.jqActivityFiltered = $scope.jqActivityFiltered.slice(begin, end);\r\n\r\n // If end up with no results, recursively step back until we get valid paged results\r\n if (!$scope.jqActivityFiltered.length && $scope.pagination.currentPage > 1) {\r\n $scope.pagination.currentPage--;\r\n filterData();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Method filters table data based on search value\r\n */\r\n var searchSyncActivity = function(objActivity){\r\n if( !$scope.frm.searchFilter\r\n || objActivity.listid == $scope.frm.searchFilter\r\n || objActivity.status.toString().toLowerCase().indexOf( $scope.frm.searchFilter.toString().toLowerCase() ) > -1\r\n || objActivity.type.toString().toLowerCase().indexOf( $scope.frm.searchFilter.toString().toLowerCase() ) > -1\r\n || objActivity.dateformatted.toString().toLowerCase().indexOf( $scope.frm.searchFilter.toString().toLowerCase() ) > -1\r\n ){\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n /************************\r\n MODAL EXPOSED FUNCTIONS\r\n ************************/\r\n $scope.dismiss = function () {\r\n $uibModalInstance.dismiss(false);\r\n };\r\n\r\n /* Column Direct Sort */\r\n $scope.setSort = function (columnKey) {\r\n $scope.frm.orderColumn = columnKey;\r\n $scope.frm.direction = !$scope.frm.direction;\r\n $scope.arrowDir = $scope.frm.direction ? 'sugicon-arrow-down-thick' : 'sugicon-arrow-up-thick';\r\n filterData();\r\n };\r\n\r\n\r\n\r\n /************************\r\n MODAL WATCHERS\r\n ************************/\r\n\r\n /**\r\n * WATCHER: Pagination\r\n */\r\n $scope.$watch('pagination.currentPage + pagination.numPerPage', function () {\r\n filterData();\r\n });\r\n\r\n /**\r\n * WATCHER: frmObj for sorting, filtering, search, setting changes\r\n */\r\n $scope.$watchCollection('frm', function (nVal, oVal) {\r\n var newVal = angular.copy(nVal);\r\n var oldVal = angular.copy(oVal);\r\n\r\n // validate number per page (stop processing if empty or invalid since we must have it for proper filter/sort)\r\n if (!$scope.frm.numPerPage || $scope.frm.numPerPage.toString().trim() === '') {\r\n return;\r\n } else if (!(angular.isNumber(~~$scope.frm.numPerPage) && isFinite(~~$scope.frm.numPerPage)) || ~~$scope.frm.numPerPage <= 0) {\r\n SUGUtilities.showMagnificAlert($scope.strings.itemsPerPageInvalid, 'error', '', 'Sorry!');\r\n $scope.frm.numPerPage = oldVal.numPerPage;\r\n return;\r\n }\r\n\r\n /* Apply Filter - Filter through the data Array, NOT the filtered data */\r\n $scope.jqActivityFiltered = $filter('orderBy')($scope.jqActivity, $scope.frm.orderColumn, $scope.frm.direction);\r\n\r\n /* Update Settings in Factory */\r\n sugCacheFactory.set( 'frm', angular.copy($scope.frm) );\r\n prepareUserSettings();\r\n\r\n /* Apply Search Filter if Present - Filter through the data Array, NOT the filtered data */\r\n if (newVal.searchFilter != oldVal.searchFilter) {\r\n $scope.jqActivityFiltered = $filter('filter')($scope.jqActivity, searchSyncActivity);\r\n $scope.jqActivityFiltered = $filter('orderBy')($scope.jqActivityFiltered, $scope.frm.orderColumn, $scope.frm.direction);\r\n $scope.recordCount = $scope.jqActivityFiltered.length;\r\n } else {\r\n filterData();\r\n }\r\n });\r\n\r\n\r\n\r\n init();\r\n }\r\n\r\n}());","/*\r\n * angular-ui-bootstrap\r\n * http://angular-ui.github.io/bootstrap/\r\n\r\n * Version: 0.14.3 - 2015-10-23\r\n * License: MIT\r\n */\r\nangular.module(\"ui.bootstrap\",[\"ui.bootstrap.tpls\",\"ui.bootstrap.collapse\",\"ui.bootstrap.accordion\",\"ui.bootstrap.alert\",\"ui.bootstrap.buttons\",\"ui.bootstrap.carousel\",\"ui.bootstrap.dateparser\",\"ui.bootstrap.position\",\"ui.bootstrap.datepicker\",\"ui.bootstrap.dropdown\",\"ui.bootstrap.stackedMap\",\"ui.bootstrap.modal\",\"ui.bootstrap.pagination\",\"ui.bootstrap.tooltip\",\"ui.bootstrap.popover\",\"ui.bootstrap.progressbar\",\"ui.bootstrap.rating\",\"ui.bootstrap.tabs\",\"ui.bootstrap.timepicker\",\"ui.bootstrap.typeahead\"]),angular.module(\"ui.bootstrap.tpls\",[\"template/accordion/accordion-group.html\",\"template/accordion/accordion.html\",\"template/alert/alert.html\",\"template/carousel/carousel.html\",\"template/carousel/slide.html\",\"template/datepicker/datepicker.html\",\"template/datepicker/day.html\",\"template/datepicker/month.html\",\"template/datepicker/popup.html\",\"template/datepicker/year.html\",\"template/modal/backdrop.html\",\"template/modal/window.html\",\"template/pagination/pager.html\",\"template/pagination/pagination.html\",\"template/tooltip/tooltip-html-popup.html\",\"template/tooltip/tooltip-popup.html\",\"template/tooltip/tooltip-template-popup.html\",\"template/popover/popover-html.html\",\"template/popover/popover-template.html\",\"template/popover/popover.html\",\"template/progressbar/bar.html\",\"template/progressbar/progress.html\",\"template/progressbar/progressbar.html\",\"template/rating/rating.html\",\"template/tabs/tab.html\",\"template/tabs/tabset.html\",\"template/timepicker/timepicker.html\",\"template/typeahead/typeahead-match.html\",\"template/typeahead/typeahead-popup.html\"]),angular.module(\"ui.bootstrap.collapse\",[]).directive(\"uibCollapse\",[\"$animate\",\"$injector\",function(a,b){var c=b.has(\"$animateCss\")?b.get(\"$animateCss\"):null;return{link:function(b,d,e){function f(){d.removeClass(\"collapse\").addClass(\"collapsing\").attr(\"aria-expanded\",!0).attr(\"aria-hidden\",!1),c?c(d,{addClass:\"in\",easing:\"ease\",to:{height:d[0].scrollHeight+\"px\"}}).start()[\"finally\"](g):a.addClass(d,\"in\",{to:{height:d[0].scrollHeight+\"px\"}}).then(g)}function g(){d.removeClass(\"collapsing\").addClass(\"collapse\").css({height:\"auto\"})}function h(){return d.hasClass(\"collapse\")||d.hasClass(\"in\")?(d.css({height:d[0].scrollHeight+\"px\"}).removeClass(\"collapse\").addClass(\"collapsing\").attr(\"aria-expanded\",!1).attr(\"aria-hidden\",!0),void(c?c(d,{removeClass:\"in\",to:{height:\"0\"}}).start()[\"finally\"](i):a.removeClass(d,\"in\",{to:{height:\"0\"}}).then(i))):i()}function i(){d.css({height:\"0\"}),d.removeClass(\"collapsing\").addClass(\"collapse\")}b.$watch(e.uibCollapse,function(a){a?h():f()})}}}]),angular.module(\"ui.bootstrap.collapse\").value(\"$collapseSuppressWarning\",!1).directive(\"collapse\",[\"$animate\",\"$injector\",\"$log\",\"$collapseSuppressWarning\",function(a,b,c,d){var e=b.has(\"$animateCss\")?b.get(\"$animateCss\"):null;return{link:function(b,f,g){function h(){f.removeClass(\"collapse\").addClass(\"collapsing\").attr(\"aria-expanded\",!0).attr(\"aria-hidden\",!1),e?e(f,{easing:\"ease\",to:{height:f[0].scrollHeight+\"px\"}}).start().done(i):a.animate(f,{},{height:f[0].scrollHeight+\"px\"}).then(i)}function i(){f.removeClass(\"collapsing\").addClass(\"collapse in\").css({height:\"auto\"})}function j(){return f.hasClass(\"collapse\")||f.hasClass(\"in\")?(f.css({height:f[0].scrollHeight+\"px\"}).removeClass(\"collapse in\").addClass(\"collapsing\").attr(\"aria-expanded\",!1).attr(\"aria-hidden\",!0),void(e?e(f,{to:{height:\"0\"}}).start().done(k):a.animate(f,{},{height:\"0\"}).then(k))):k()}function k(){f.css({height:\"0\"}),f.removeClass(\"collapsing\").addClass(\"collapse\")}d||c.warn(\"collapse is now deprecated. Use uib-collapse instead.\"),b.$watch(g.collapse,function(a){a?j():h()})}}}]),angular.module(\"ui.bootstrap.accordion\",[\"ui.bootstrap.collapse\"]).constant(\"uibAccordionConfig\",{closeOthers:!0}).controller(\"UibAccordionController\",[\"$scope\",\"$attrs\",\"uibAccordionConfig\",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on(\"$destroy\",function(c){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive(\"uibAccordion\",function(){return{controller:\"UibAccordionController\",controllerAs:\"accordion\",transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion.html\"}}}).directive(\"uibAccordionGroup\",function(){return{require:\"^uibAccordion\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion-group.html\"},scope:{heading:\"@\",isOpen:\"=?\",isDisabled:\"=?\"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.openClass=c.openClass||\"panel-open\",a.panelClass=c.panelClass,a.$watch(\"isOpen\",function(c){b.toggleClass(a.openClass,!!c),c&&d.closeOthers(a)}),a.toggleOpen=function(b){a.isDisabled||b&&32!==b.which||(a.isOpen=!a.isOpen)}}}}).directive(\"uibAccordionHeading\",function(){return{transclude:!0,template:\"\",replace:!0,require:\"^uibAccordionGroup\",link:function(a,b,c,d,e){d.setHeading(e(a,angular.noop))}}}).directive(\"uibAccordionTransclude\",function(){return{require:[\"?^uibAccordionGroup\",\"?^accordionGroup\"],link:function(a,b,c,d){d=d[0]?d[0]:d[1],a.$watch(function(){return d[c.uibAccordionTransclude]},function(a){a&&(b.find(\"span\").html(\"\"),b.find(\"span\").append(a))})}}}),angular.module(\"ui.bootstrap.accordion\").value(\"$accordionSuppressWarning\",!1).controller(\"AccordionController\",[\"$scope\",\"$attrs\",\"$controller\",\"$log\",\"$accordionSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"AccordionController is now deprecated. Use UibAccordionController instead.\"),angular.extend(this,c(\"UibAccordionController\",{$scope:a,$attrs:b}))}]).directive(\"accordion\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{restrict:\"EA\",controller:\"AccordionController\",controllerAs:\"accordion\",transclude:!0,replace:!1,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion.html\"},link:function(){b||a.warn(\"accordion is now deprecated. Use uib-accordion instead.\")}}}]).directive(\"accordionGroup\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{require:\"^accordion\",restrict:\"EA\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion-group.html\"},scope:{heading:\"@\",isOpen:\"=?\",isDisabled:\"=?\"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(c,d,e,f){b||a.warn(\"accordion-group is now deprecated. Use uib-accordion-group instead.\"),f.addGroup(c),c.openClass=e.openClass||\"panel-open\",c.panelClass=e.panelClass,c.$watch(\"isOpen\",function(a){d.toggleClass(c.openClass,!!a),a&&f.closeOthers(c)}),c.toggleOpen=function(a){c.isDisabled||a&&32!==a.which||(c.isOpen=!c.isOpen)}}}}]).directive(\"accordionHeading\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{restrict:\"EA\",transclude:!0,template:\"\",replace:!0,require:\"^accordionGroup\",link:function(c,d,e,f,g){b||a.warn(\"accordion-heading is now deprecated. Use uib-accordion-heading instead.\"),f.setHeading(g(c,angular.noop))}}}]).directive(\"accordionTransclude\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{require:\"^accordionGroup\",link:function(c,d,e,f){b||a.warn(\"accordion-transclude is now deprecated. Use uib-accordion-transclude instead.\"),c.$watch(function(){return f[e.accordionTransclude]},function(a){a&&(d.find(\"span\").html(\"\"),d.find(\"span\").append(a))})}}}]),angular.module(\"ui.bootstrap.alert\",[]).controller(\"UibAlertController\",[\"$scope\",\"$attrs\",\"$interpolate\",\"$timeout\",function(a,b,c,d){a.closeable=!!b.close;var e=angular.isDefined(b.dismissOnTimeout)?c(b.dismissOnTimeout)(a.$parent):null;e&&d(function(){a.close()},parseInt(e,10))}]).directive(\"uibAlert\",function(){return{controller:\"UibAlertController\",controllerAs:\"alert\",templateUrl:function(a,b){return b.templateUrl||\"template/alert/alert.html\"},transclude:!0,replace:!0,scope:{type:\"@\",close:\"&\"}}}),angular.module(\"ui.bootstrap.alert\").value(\"$alertSuppressWarning\",!1).controller(\"AlertController\",[\"$scope\",\"$attrs\",\"$controller\",\"$log\",\"$alertSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"AlertController is now deprecated. Use UibAlertController instead.\"),angular.extend(this,c(\"UibAlertController\",{$scope:a,$attrs:b}))}]).directive(\"alert\",[\"$log\",\"$alertSuppressWarning\",function(a,b){return{controller:\"AlertController\",controllerAs:\"alert\",templateUrl:function(a,b){return b.templateUrl||\"template/alert/alert.html\"},transclude:!0,replace:!0,scope:{type:\"@\",close:\"&\"},link:function(){b||a.warn(\"alert is now deprecated. Use uib-alert instead.\")}}}]),angular.module(\"ui.bootstrap.buttons\",[]).constant(\"uibButtonConfig\",{activeClass:\"active\",toggleEvent:\"click\"}).controller(\"UibButtonsController\",[\"uibButtonConfig\",function(a){this.activeClass=a.activeClass||\"active\",this.toggleEvent=a.toggleEvent||\"click\"}]).directive(\"uibBtnRadio\",function(){return{require:[\"uibBtnRadio\",\"ngModel\"],controller:\"UibButtonsController\",controllerAs:\"buttons\",link:function(a,b,c,d){var e=d[0],f=d[1];b.find(\"input\").css({display:\"none\"}),f.$render=function(){b.toggleClass(e.activeClass,angular.equals(f.$modelValue,a.$eval(c.uibBtnRadio)))},b.on(e.toggleEvent,function(){if(!c.disabled){var d=b.hasClass(e.activeClass);(!d||angular.isDefined(c.uncheckable))&&a.$apply(function(){f.$setViewValue(d?null:a.$eval(c.uibBtnRadio)),f.$render()})}})}}}).directive(\"uibBtnCheckbox\",function(){return{require:[\"uibBtnCheckbox\",\"ngModel\"],controller:\"UibButtonsController\",controllerAs:\"button\",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){return angular.isDefined(b)?a.$eval(b):c}var h=d[0],i=d[1];b.find(\"input\").css({display:\"none\"}),i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.on(h.toggleEvent,function(){c.disabled||a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module(\"ui.bootstrap.buttons\").value(\"$buttonsSuppressWarning\",!1).controller(\"ButtonsController\",[\"$controller\",\"$log\",\"$buttonsSuppressWarning\",function(a,b,c){c||b.warn(\"ButtonsController is now deprecated. Use UibButtonsController instead.\"),angular.extend(this,a(\"UibButtonsController\"))}]).directive(\"btnRadio\",[\"$log\",\"$buttonsSuppressWarning\",function(a,b){return{require:[\"btnRadio\",\"ngModel\"],controller:\"ButtonsController\",controllerAs:\"buttons\",link:function(c,d,e,f){b||a.warn(\"btn-radio is now deprecated. Use uib-btn-radio instead.\");var g=f[0],h=f[1];d.find(\"input\").css({display:\"none\"}),h.$render=function(){d.toggleClass(g.activeClass,angular.equals(h.$modelValue,c.$eval(e.btnRadio)))},d.bind(g.toggleEvent,function(){if(!e.disabled){var a=d.hasClass(g.activeClass);(!a||angular.isDefined(e.uncheckable))&&c.$apply(function(){h.$setViewValue(a?null:c.$eval(e.btnRadio)),h.$render()})}})}}}]).directive(\"btnCheckbox\",[\"$document\",\"$log\",\"$buttonsSuppressWarning\",function(a,b,c){return{require:[\"btnCheckbox\",\"ngModel\"],controller:\"ButtonsController\",controllerAs:\"button\",link:function(d,e,f,g){function h(){return j(f.btnCheckboxTrue,!0)}function i(){return j(f.btnCheckboxFalse,!1)}function j(a,b){var c=d.$eval(a);return angular.isDefined(c)?c:b}c||b.warn(\"btn-checkbox is now deprecated. Use uib-btn-checkbox instead.\");var k=g[0],l=g[1];e.find(\"input\").css({display:\"none\"}),l.$render=function(){e.toggleClass(k.activeClass,angular.equals(l.$modelValue,h()))},e.bind(k.toggleEvent,function(){f.disabled||d.$apply(function(){l.$setViewValue(e.hasClass(k.activeClass)?i():h()),l.$render()})}),e.on(\"keypress\",function(b){f.disabled||32!==b.which||a[0].activeElement!==e[0]||d.$apply(function(){l.$setViewValue(e.hasClass(k.activeClass)?i():h()),l.$render()})})}}}]),angular.module(\"ui.bootstrap.carousel\",[]).controller(\"UibCarouselController\",[\"$scope\",\"$element\",\"$interval\",\"$animate\",function(a,b,c,d){function e(b,c,e){s||(angular.extend(b,{direction:e,active:!0}),angular.extend(m.currentSlide||{},{direction:e,active:!1}),d.enabled()&&!a.noTransition&&!a.$currentTransition&&b.$element&&m.slides.length>1&&(b.$element.data(q,b.direction),m.currentSlide&&m.currentSlide.$element&&m.currentSlide.$element.data(q,b.direction),a.$currentTransition=!0,o?d.on(\"addClass\",b.$element,function(b,c){\"close\"===c&&(a.$currentTransition=null,d.off(\"addClass\",b))}):b.$element.one(\"$animate:close\",function(){a.$currentTransition=null})),m.currentSlide=b,r=c,g())}function f(a){if(angular.isUndefined(n[a].index))return n[a];var b;n.length;for(b=0;b0&&(k=c(i,b))}function h(){k&&(c.cancel(k),k=null)}function i(){var b=+a.interval;l&&!isNaN(b)&&b>0&&n.length?a.next():a.pause()}function j(b){b.length||(a.$currentTransition=null)}var k,l,m=this,n=m.slides=a.slides=[],o=angular.version.minor>=4,p=\"uib-noTransition\",q=\"uib-slideDirection\",r=-1;m.currentSlide=null;var s=!1;m.select=a.select=function(b,c){var d=a.indexOfSlide(b);void 0===c&&(c=d>m.getCurrentIndex()?\"next\":\"prev\"),b&&b!==m.currentSlide&&!a.$currentTransition&&e(b,d,c)},a.$on(\"$destroy\",function(){s=!0}),m.getCurrentIndex=function(){return m.currentSlide&&angular.isDefined(m.currentSlide.index)?+m.currentSlide.index:r},a.indexOfSlide=function(a){return angular.isDefined(a.index)?+a.index:n.indexOf(a)},a.next=function(){var b=(m.getCurrentIndex()+1)%n.length;return 0===b&&a.noWrap()?void a.pause():m.select(f(b),\"next\")},a.prev=function(){var b=m.getCurrentIndex()-1<0?n.length-1:m.getCurrentIndex()-1;return a.noWrap()&&b===n.length-1?void a.pause():m.select(f(b),\"prev\")},a.isActive=function(a){return m.currentSlide===a},a.$watch(\"interval\",g),a.$watchCollection(\"slides\",j),a.$on(\"$destroy\",h),a.play=function(){l||(l=!0,g())},a.pause=function(){a.noPause||(l=!1,h())},m.addSlide=function(b,c){b.$element=c,n.push(b),1===n.length||b.active?(m.select(n[n.length-1]),1===n.length&&a.play()):b.active=!1},m.removeSlide=function(a){angular.isDefined(a.index)&&n.sort(function(a,b){return+a.index>+b.index});var b=n.indexOf(a);n.splice(b,1),n.length>0&&a.active?b>=n.length?m.select(n[b-1]):m.select(n[b]):r>b&&r--,0===n.length&&(m.currentSlide=null)},a.$watch(\"noTransition\",function(a){b.data(p,a)})}]).directive(\"uibCarousel\",[function(){return{transclude:!0,replace:!0,controller:\"UibCarouselController\",controllerAs:\"carousel\",require:\"carousel\",templateUrl:function(a,b){return b.templateUrl||\"template/carousel/carousel.html\"},scope:{interval:\"=\",noTransition:\"=\",noPause:\"=\",noWrap:\"&\"}}}]).directive(\"uibSlide\",function(){return{require:\"^uibCarousel\",restrict:\"EA\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/carousel/slide.html\"},scope:{active:\"=?\",actual:\"=?\",index:\"=?\"},link:function(a,b,c,d){d.addSlide(a,b),a.$on(\"$destroy\",function(){d.removeSlide(a)}),a.$watch(\"active\",function(b){b&&d.select(a)})}}}).animation(\".item\",[\"$injector\",\"$animate\",function(a,b){function c(a,b,c){a.removeClass(b),c&&c()}var d=\"uib-noTransition\",e=\"uib-slideDirection\",f=null;return a.has(\"$animateCss\")&&(f=a.get(\"$animateCss\")),{beforeAddClass:function(a,g,h){if(\"active\"==g&&a.parent()&&a.parent().parent()&&!a.parent().parent().data(d)){var i=!1,j=a.data(e),k=\"next\"==j?\"left\":\"right\",l=c.bind(this,a,k+\" \"+j,h);return a.addClass(j),f?f(a,{addClass:k}).start().done(l):b.addClass(a,k).then(function(){i||l(),h()}),function(){i=!0}}h()},beforeRemoveClass:function(a,g,h){if(\"active\"===g&&a.parent()&&a.parent().parent()&&!a.parent().parent().data(d)){var i=!1,j=a.data(e),k=\"next\"==j?\"left\":\"right\",l=c.bind(this,a,k,h);return f?f(a,{addClass:k}).start().done(l):b.addClass(a,k).then(function(){i||l(),h()}),function(){i=!0}}h()}}}]),angular.module(\"ui.bootstrap.carousel\").value(\"$carouselSuppressWarning\",!1).controller(\"CarouselController\",[\"$scope\",\"$element\",\"$controller\",\"$log\",\"$carouselSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"CarouselController is now deprecated. Use UibCarouselController instead.\"),angular.extend(this,c(\"UibCarouselController\",{$scope:a,$element:b}))}]).directive(\"carousel\",[\"$log\",\"$carouselSuppressWarning\",function(a,b){return{transclude:!0,replace:!0,controller:\"CarouselController\",controllerAs:\"carousel\",require:\"carousel\",templateUrl:function(a,b){return b.templateUrl||\"template/carousel/carousel.html\"},scope:{interval:\"=\",noTransition:\"=\",noPause:\"=\",noWrap:\"&\"},link:function(){b||a.warn(\"carousel is now deprecated. Use uib-carousel instead.\")}}}]).directive(\"slide\",[\"$log\",\"$carouselSuppressWarning\",function(a,b){return{require:\"^carousel\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/carousel/slide.html\"},scope:{active:\"=?\",actual:\"=?\",index:\"=?\"},link:function(c,d,e,f){b||a.warn(\"slide is now deprecated. Use uib-slide instead.\"),f.addSlide(c,d),c.$on(\"$destroy\",function(){f.removeSlide(c)}),c.$watch(\"active\",function(a){a&&f.select(c)})}}}]),angular.module(\"ui.bootstrap.dateparser\",[]).service(\"uibDateParser\",[\"$log\",\"$locale\",\"orderByFilter\",function(a,b,c){function d(a){var b=[],d=a.split(\"\");return angular.forEach(g,function(c,e){var f=a.indexOf(e);if(f>-1){a=a.split(\"\"),d[f]=\"(\"+c.regex+\")\",a[f]=\"$\";for(var g=f+1,h=f+e.length;h>g;g++)d[g]=\"\",a[g]=\"$\";a=a.join(\"\"),b.push({index:f,apply:c.apply})}}),{regex:new RegExp(\"^\"+d.join(\"\")+\"$\"),map:c(b,\"index\")}}function e(a,b,c){return 1>c?!1:1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}var f,g,h=/[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;this.init=function(){f=b.id,this.parsers={},g={yyyy:{regex:\"\\\\d{4}\",apply:function(a){this.year=+a}},yy:{regex:\"\\\\d{2}\",apply:function(a){this.year=+a+2e3}},y:{regex:\"\\\\d{1,4}\",apply:function(a){this.year=+a}},MMMM:{regex:b.DATETIME_FORMATS.MONTH.join(\"|\"),apply:function(a){this.month=b.DATETIME_FORMATS.MONTH.indexOf(a)}},MMM:{regex:b.DATETIME_FORMATS.SHORTMONTH.join(\"|\"),apply:function(a){this.month=b.DATETIME_FORMATS.SHORTMONTH.indexOf(a)}},MM:{regex:\"0[1-9]|1[0-2]\",apply:function(a){this.month=a-1}},M:{regex:\"[1-9]|1[0-2]\",apply:function(a){this.month=a-1}},dd:{regex:\"[0-2][0-9]{1}|3[0-1]{1}\",apply:function(a){this.date=+a}},d:{regex:\"[1-2]?[0-9]{1}|3[0-1]{1}\",apply:function(a){this.date=+a}},EEEE:{regex:b.DATETIME_FORMATS.DAY.join(\"|\")},EEE:{regex:b.DATETIME_FORMATS.SHORTDAY.join(\"|\")},HH:{regex:\"(?:0|1)[0-9]|2[0-3]\",apply:function(a){this.hours=+a}},hh:{regex:\"0[0-9]|1[0-2]\",apply:function(a){this.hours=+a}},H:{regex:\"1?[0-9]|2[0-3]\",apply:function(a){this.hours=+a}},h:{regex:\"[0-9]|1[0-2]\",apply:function(a){this.hours=+a}},mm:{regex:\"[0-5][0-9]\",apply:function(a){this.minutes=+a}},m:{regex:\"[0-9]|[1-5][0-9]\",apply:function(a){this.minutes=+a}},sss:{regex:\"[0-9][0-9][0-9]\",apply:function(a){this.milliseconds=+a}},ss:{regex:\"[0-5][0-9]\",apply:function(a){this.seconds=+a}},s:{regex:\"[0-9]|[1-5][0-9]\",apply:function(a){this.seconds=+a}},a:{regex:b.DATETIME_FORMATS.AMPMS.join(\"|\"),apply:function(a){12===this.hours&&(this.hours=0),\"PM\"===a&&(this.hours+=12)}}}},this.init(),this.parse=function(c,g,i){if(!angular.isString(c)||!g)return c;g=b.DATETIME_FORMATS[g]||g,g=g.replace(h,\"\\\\$&\"),b.id!==f&&this.init(),this.parsers[g]||(this.parsers[g]=d(g));var j=this.parsers[g],k=j.regex,l=j.map,m=c.match(k);if(m&&m.length){var n,o;angular.isDate(i)&&!isNaN(i.getTime())?n={year:i.getFullYear(),month:i.getMonth(),date:i.getDate(),hours:i.getHours(),minutes:i.getMinutes(),seconds:i.getSeconds(),milliseconds:i.getMilliseconds()}:(i&&a.warn(\"dateparser:\",\"baseDate is not a valid date\"),n={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var p=1,q=m.length;q>p;p++){var r=l[p-1];r.apply&&r.apply.call(n,m[p])}return e(n.year,n.month,n.date)&&(angular.isDate(i)&&!isNaN(i.getTime())?(o=new Date(i),o.setFullYear(n.year,n.month,n.date,n.hours,n.minutes,n.seconds,n.milliseconds||0)):o=new Date(n.year,n.month,n.date,n.hours,n.minutes,n.seconds,n.milliseconds||0)),o}}}]),angular.module(\"ui.bootstrap.dateparser\").value(\"$dateParserSuppressWarning\",!1).service(\"dateParser\",[\"$log\",\"$dateParserSuppressWarning\",\"uibDateParser\",function(a,b,c){b||a.warn(\"dateParser is now deprecated. Use uibDateParser instead.\"),angular.extend(this,c)}]),angular.module(\"ui.bootstrap.position\",[]).factory(\"$uibPosition\",[\"$document\",\"$window\",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return\"static\"===(c(a,\"position\")||\"static\")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);f!=a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft);var g=b[0].getBoundingClientRect();return{width:g.width||b.prop(\"offsetWidth\"),height:g.height||b.prop(\"offsetHeight\"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop(\"offsetWidth\"),height:d.height||c.prop(\"offsetHeight\"),top:d.top+(b.pageYOffset||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].documentElement.scrollLeft)}},positionElements:function(a,b,c,d){var e,f,g,h,i=c.split(\"-\"),j=i[0],k=i[1]||\"center\";e=d?this.offset(a):this.position(a),f=b.prop(\"offsetWidth\"),g=b.prop(\"offsetHeight\");var l={center:function(){return e.left+e.width/2-f/2},left:function(){return e.left},right:function(){return e.left+e.width}},m={center:function(){return e.top+e.height/2-g/2},top:function(){return e.top},bottom:function(){return e.top+e.height}};switch(j){case\"right\":h={top:m[k](),left:l[j]()};break;case\"left\":h={top:m[k](),left:e.left-f};break;case\"bottom\":h={top:m[j](),left:l[k]()};break;default:h={top:e.top-g,left:l[k]()}}return h}}}]),angular.module(\"ui.bootstrap.position\").value(\"$positionSuppressWarning\",!1).service(\"$position\",[\"$log\",\"$positionSuppressWarning\",\"$uibPosition\",function(a,b,c){b||a.warn(\"$position is now deprecated. Use $uibPosition instead.\"),angular.extend(this,c)}]),angular.module(\"ui.bootstrap.datepicker\",[\"ui.bootstrap.dateparser\",\"ui.bootstrap.position\"]).value(\"$datepickerSuppressError\",!1).constant(\"uibDatepickerConfig\",{formatDay:\"dd\",formatMonth:\"MMMM\",formatYear:\"yyyy\",formatDayHeader:\"EEE\",formatDayTitle:\"MMMM yyyy\",formatMonthTitle:\"yyyy\",datepickerMode:\"day\",minMode:\"day\",maxMode:\"year\",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null,shortcutPropagation:!1}).controller(\"UibDatepickerController\",[\"$scope\",\"$attrs\",\"$parse\",\"$interpolate\",\"$log\",\"dateFilter\",\"uibDatepickerConfig\",\"$datepickerSuppressError\",function(a,b,c,d,e,f,g,h){var i=this,j={$setViewValue:angular.noop};this.modes=[\"day\",\"month\",\"year\"],angular.forEach([\"formatDay\",\"formatMonth\",\"formatYear\",\"formatDayHeader\",\"formatDayTitle\",\"formatMonthTitle\",\"showWeeks\",\"startingDay\",\"yearRange\",\"shortcutPropagation\"],function(c,e){i[c]=angular.isDefined(b[c])?6>e?d(b[c])(a.$parent):a.$parent.$eval(b[c]):g[c]}),angular.forEach([\"minDate\",\"maxDate\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(a){i[d]=a?new Date(a):null,i.refreshView()}):i[d]=g[d]?new Date(g[d]):null}),angular.forEach([\"minMode\",\"maxMode\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(c){i[d]=angular.isDefined(c)?c:b[d],a[d]=i[d],(\"minMode\"==d&&i.modes.indexOf(a.datepickerMode)i.modes.indexOf(i[d]))&&(a.datepickerMode=i[d])}):(i[d]=g[d]||null,a[d]=i[d])}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId=\"datepicker-\"+a.$id+\"-\"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=a.$parent.$eval(b.initDate)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(j.$isEmpty(j.$modelValue)||j.$invalid)&&(i.activeDate=a,i.refreshView())})):this.activeDate=new Date,a.isActive=function(b){return 0===i.compare(b.date,i.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){j=a,j.$render=function(){i.render()}},this.render=function(){if(j.$viewValue){var a=new Date(j.$viewValue),b=!isNaN(a);b?this.activeDate=a:h||e.error('Datepicker directive: \"ng-model\" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var a=j.$viewValue?new Date(j.$viewValue):null;j.$setValidity(\"dateDisabled\",!a||this.element&&!this.isDisabled(a))}},this.createDateObject=function(a,b){var c=j.$viewValue?new Date(j.$viewValue):null;return{date:a,label:f(a,b),selected:c&&0===this.compare(a,c),disabled:this.isDisabled(a),current:0===this.compare(a,new Date),customClass:this.customClass(a)}},this.isDisabled=function(c){return this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===i.minMode){var c=j.$viewValue?new Date(j.$viewValue):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),j.$setViewValue(c),j.$render()}else i.activeDate=b,a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=i.activeDate.getFullYear()+a*(i.step.years||0),c=i.activeDate.getMonth()+a*(i.step.months||0);i.activeDate.setFullYear(b,c,1),i.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===i.maxMode&&1===b||a.datepickerMode===i.minMode&&-1===b||(a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)+b])},a.keys={13:\"enter\",32:\"space\",33:\"pageup\",34:\"pagedown\",35:\"end\",36:\"home\",37:\"left\",38:\"up\",39:\"right\",40:\"down\"};var k=function(){i.element[0].focus()};a.$on(\"uib:datepicker.focus\",k),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey)if(b.preventDefault(),i.shortcutPropagation||b.stopPropagation(),\"enter\"===c||\"space\"===c){if(i.isDisabled(i.activeDate))return;a.select(i.activeDate)}else!b.ctrlKey||\"up\"!==c&&\"down\"!==c?(i.handleKeyDown(c,b),i.refreshView()):a.toggleMode(\"up\"===c?1:-1)}}]).controller(\"UibDaypickerController\",[\"$scope\",\"$element\",\"dateFilter\",function(a,b,c){function d(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?f[b]:29}function e(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var f=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=b,this.init=function(b){angular.extend(b,this),a.showWeeks=b.showWeeks,b.refreshView()},this.getDates=function(a,b){for(var c,d=new Array(b),e=new Date(a),f=0;b>f;)c=new Date(e),d[f++]=c,e.setDate(e.getDate()+1);return d},this._refreshView=function(){var b=this.activeDate.getFullYear(),d=this.activeDate.getMonth(),f=new Date(this.activeDate);f.setFullYear(b,d,1);var g=this.startingDay-f.getDay(),h=g>0?7-g:-g,i=new Date(f);h>0&&i.setDate(-h+1);for(var j=this.getDates(i,42),k=0;42>k;k++)j[k]=angular.extend(this.createDateObject(j[k],this.formatDay),{secondary:j[k].getMonth()!==d,uid:a.uniqueId+\"-\"+k});a.labels=new Array(7);for(var l=0;7>l;l++)a.labels[l]={abbr:c(j[l].date,this.formatDayHeader),full:c(j[l].date,\"EEEE\")};if(a.title=c(this.activeDate,this.formatDayTitle),a.rows=this.split(j,7),a.showWeeks){a.weekNumbers=[];for(var m=(11-this.startingDay)%7,n=a.rows.length,o=0;n>o;o++)a.weekNumbers.push(e(a.rows[o][m].date))}},this.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},this.handleKeyDown=function(a,b){var c=this.activeDate.getDate();if(\"left\"===a)c-=1;else if(\"up\"===a)c-=7;else if(\"right\"===a)c+=1;else if(\"down\"===a)c+=7;else if(\"pageup\"===a||\"pagedown\"===a){var e=this.activeDate.getMonth()+(\"pageup\"===a?-1:1);this.activeDate.setMonth(e,1),c=Math.min(d(this.activeDate.getFullYear(),this.activeDate.getMonth()),c)}else\"home\"===a?c=1:\"end\"===a&&(c=d(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(c)}}]).controller(\"UibMonthpickerController\",[\"$scope\",\"$element\",\"dateFilter\",function(a,b,c){this.step={years:1},this.element=b,this.init=function(a){angular.extend(a,this),a.refreshView()},this._refreshView=function(){for(var b,d=new Array(12),e=this.activeDate.getFullYear(),f=0;12>f;f++)b=new Date(this.activeDate),b.setFullYear(e,f,1),d[f]=angular.extend(this.createDateObject(b,this.formatMonth),{uid:a.uniqueId+\"-\"+f});a.title=c(this.activeDate,this.formatMonthTitle),a.rows=this.split(d,3)},this.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth())-new Date(b.getFullYear(),b.getMonth())},this.handleKeyDown=function(a,b){var c=this.activeDate.getMonth();if(\"left\"===a)c-=1;else if(\"up\"===a)c-=3;else if(\"right\"===a)c+=1;else if(\"down\"===a)c+=3;else if(\"pageup\"===a||\"pagedown\"===a){var d=this.activeDate.getFullYear()+(\"pageup\"===a?-1:1);this.activeDate.setFullYear(d)}else\"home\"===a?c=0:\"end\"===a&&(c=11);this.activeDate.setMonth(c)}}]).controller(\"UibYearpickerController\",[\"$scope\",\"$element\",\"dateFilter\",function(a,b,c){function d(a){return parseInt((a-1)/e,10)*e+1}var e;this.element=b,this.yearpickerInit=function(){e=this.yearRange,this.step={years:e}},this._refreshView=function(){for(var b,c=new Array(e),f=0,g=d(this.activeDate.getFullYear());e>f;f++)b=new Date(this.activeDate),b.setFullYear(g+f,0,1),c[f]=angular.extend(this.createDateObject(b,this.formatYear),{uid:a.uniqueId+\"-\"+f});a.title=[c[0].label,c[e-1].label].join(\" - \"),a.rows=this.split(c,5)},this.compare=function(a,b){return a.getFullYear()-b.getFullYear()},this.handleKeyDown=function(a,b){var c=this.activeDate.getFullYear();\"left\"===a?c-=1:\"up\"===a?c-=5:\"right\"===a?c+=1:\"down\"===a?c+=5:\"pageup\"===a||\"pagedown\"===a?c+=(\"pageup\"===a?-1:1)*this.step.years:\"home\"===a?c=d(this.activeDate.getFullYear()):\"end\"===a&&(c=d(this.activeDate.getFullYear())+e-1),this.activeDate.setFullYear(c)}}]).directive(\"uibDatepicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/datepicker.html\"},scope:{datepickerMode:\"=?\",dateDisabled:\"&\",customClass:\"&\",shortcutPropagation:\"&?\"},require:[\"uibDatepicker\",\"^ngModel\"],controller:\"UibDatepickerController\",controllerAs:\"datepicker\",link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}).directive(\"uibDaypicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/day.html\"},require:[\"^?uibDatepicker\",\"uibDaypicker\",\"^?datepicker\"],controller:\"UibDaypickerController\",link:function(a,b,c,d){var e=d[0]||d[2],f=d[1];f.init(e)}}}).directive(\"uibMonthpicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/month.html\"},require:[\"^?uibDatepicker\",\"uibMonthpicker\",\"^?datepicker\"],controller:\"UibMonthpickerController\",link:function(a,b,c,d){var e=d[0]||d[2],f=d[1];f.init(e)}}}).directive(\"uibYearpicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/year.html\"},require:[\"^?uibDatepicker\",\"uibYearpicker\",\"^?datepicker\"],controller:\"UibYearpickerController\",link:function(a,b,c,d){var e=d[0]||d[2];angular.extend(e,d[1]),e.yearpickerInit(),e.refreshView()}}}).constant(\"uibDatepickerPopupConfig\",{datepickerPopup:\"yyyy-MM-dd\",datepickerPopupTemplateUrl:\"template/datepicker/popup.html\",datepickerTemplateUrl:\"template/datepicker/datepicker.html\",html5Types:{date:\"yyyy-MM-dd\",\"datetime-local\":\"yyyy-MM-ddTHH:mm:ss.sss\",month:\"yyyy-MM\"},currentText:\"Today\",clearText:\"Clear\",closeText:\"Done\",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0}).controller(\"UibDatepickerPopupController\",[\"$scope\",\"$element\",\"$attrs\",\"$compile\",\"$parse\",\"$document\",\"$rootScope\",\"$uibPosition\",\"dateFilter\",\"uibDateParser\",\"uibDatepickerPopupConfig\",\"$timeout\",function(a,b,c,d,e,f,g,h,i,j,k,l){\r\nfunction m(a){return a.replace(/([A-Z])/g,function(a){return\"-\"+a.toLowerCase()})}function n(b){if(angular.isNumber(b)&&(b=new Date(b)),b){if(angular.isDate(b)&&!isNaN(b))return b;if(angular.isString(b)){var c=j.parse(b,r,a.date);return isNaN(c)?void 0:c}return void 0}return null}function o(a,b){var d=a||b;if(!c.ngRequired&&!d)return!0;if(angular.isNumber(d)&&(d=new Date(d)),d){if(angular.isDate(d)&&!isNaN(d))return!0;if(angular.isString(d)){var e=j.parse(d,r);return!isNaN(e)}return!1}return!0}function p(c){var d=A[0],e=b[0].contains(c.target),f=void 0!==d.contains&&d.contains(c.target);!a.isOpen||e||f||a.$apply(function(){a.isOpen=!1})}function q(c){27===c.which&&a.isOpen?(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!1}),b[0].focus()):40!==c.which||a.isOpen||(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!0}))}var r,s,t,u,v,w,x,y,z,A,B={},C=!1;a.watchData={},this.init=function(h){if(z=h,s=angular.isDefined(c.closeOnDateSelection)?a.$parent.$eval(c.closeOnDateSelection):k.closeOnDateSelection,t=angular.isDefined(c.datepickerAppendToBody)?a.$parent.$eval(c.datepickerAppendToBody):k.appendToBody,u=angular.isDefined(c.onOpenFocus)?a.$parent.$eval(c.onOpenFocus):k.onOpenFocus,v=angular.isDefined(c.datepickerPopupTemplateUrl)?c.datepickerPopupTemplateUrl:k.datepickerPopupTemplateUrl,w=angular.isDefined(c.datepickerTemplateUrl)?c.datepickerTemplateUrl:k.datepickerTemplateUrl,a.showButtonBar=angular.isDefined(c.showButtonBar)?a.$parent.$eval(c.showButtonBar):k.showButtonBar,k.html5Types[c.type]?(r=k.html5Types[c.type],C=!0):(r=c.datepickerPopup||c.uibDatepickerPopup||k.datepickerPopup,c.$observe(\"uibDatepickerPopup\",function(a,b){var c=a||k.datepickerPopup;if(c!==r&&(r=c,z.$modelValue=null,!r))throw new Error(\"uibDatepickerPopup must have a date format specified.\")})),!r)throw new Error(\"uibDatepickerPopup must have a date format specified.\");if(C&&c.datepickerPopup)throw new Error(\"HTML5 date input types do not support custom formats.\");if(x=angular.element(\"
\"),x.attr({\"ng-model\":\"date\",\"ng-change\":\"dateSelection(date)\",\"template-url\":v}),y=angular.element(x.children()[0]),y.attr(\"template-url\",w),C&&\"month\"===c.type&&(y.attr(\"datepicker-mode\",'\"month\"'),y.attr(\"min-mode\",\"month\")),c.datepickerOptions){var l=a.$parent.$eval(c.datepickerOptions);l&&l.initDate&&(a.initDate=l.initDate,y.attr(\"init-date\",\"initDate\"),delete l.initDate),angular.forEach(l,function(a,b){y.attr(m(b),a)})}angular.forEach([\"minMode\",\"maxMode\",\"minDate\",\"maxDate\",\"datepickerMode\",\"initDate\",\"shortcutPropagation\"],function(b){if(c[b]){var d=e(c[b]);if(a.$parent.$watch(d,function(c){a.watchData[b]=c,(\"minDate\"===b||\"maxDate\"===b)&&(B[b]=new Date(c))}),y.attr(m(b),\"watchData.\"+b),\"datepickerMode\"===b){var f=d.assign;a.$watch(\"watchData.\"+b,function(b,c){angular.isFunction(f)&&b!==c&&f(a.$parent,b)})}}}),c.dateDisabled&&y.attr(\"date-disabled\",\"dateDisabled({ date: date, mode: mode })\"),c.showWeeks&&y.attr(\"show-weeks\",c.showWeeks),c.customClass&&y.attr(\"custom-class\",\"customClass({ date: date, mode: mode })\"),C?z.$formatters.push(function(b){return a.date=b,b}):(z.$$parserName=\"date\",z.$validators.date=o,z.$parsers.unshift(n),z.$formatters.push(function(b){return a.date=b,z.$isEmpty(b)?b:i(b,r)})),z.$viewChangeListeners.push(function(){a.date=j.parse(z.$viewValue,r,a.date)}),b.bind(\"keydown\",q),A=d(x)(a),x.remove(),t?f.find(\"body\").append(A):b.after(A),a.$on(\"$destroy\",function(){a.isOpen===!0&&(g.$$phase||a.$apply(function(){a.isOpen=!1})),A.remove(),b.unbind(\"keydown\",q),f.unbind(\"click\",p)})},a.getText=function(b){return a[b+\"Text\"]||k[b+\"Text\"]},a.isDisabled=function(b){return\"today\"===b&&(b=new Date),a.watchData.minDate&&a.compare(b,B.minDate)<0||a.watchData.maxDate&&a.compare(b,B.maxDate)>0},a.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},a.dateSelection=function(c){angular.isDefined(c)&&(a.date=c);var d=a.date?i(a.date,r):null;b.val(d),z.$setViewValue(d),s&&(a.isOpen=!1,b[0].focus())},a.keydown=function(c){27===c.which&&(a.isOpen=!1,b[0].focus())},a.select=function(b){if(\"today\"===b){var c=new Date;angular.isDate(a.date)?(b=new Date(a.date),b.setFullYear(c.getFullYear(),c.getMonth(),c.getDate())):b=new Date(c.setHours(0,0,0,0))}a.dateSelection(b)},a.close=function(){a.isOpen=!1,b[0].focus()},a.$watch(\"isOpen\",function(c){c?(a.position=t?h.offset(b):h.position(b),a.position.top=a.position.top+b.prop(\"offsetHeight\"),l(function(){u&&a.$broadcast(\"uib:datepicker.focus\"),f.bind(\"click\",p)},0,!1)):f.unbind(\"click\",p)})}]).directive(\"uibDatepickerPopup\",function(){return{require:[\"ngModel\",\"uibDatepickerPopup\"],controller:\"UibDatepickerPopupController\",scope:{isOpen:\"=?\",currentText:\"@\",clearText:\"@\",closeText:\"@\",dateDisabled:\"&\",customClass:\"&\"},link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive(\"uibDatepickerPopupWrap\",function(){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/popup.html\"}}}),angular.module(\"ui.bootstrap.datepicker\").value(\"$datepickerSuppressWarning\",!1).controller(\"DatepickerController\",[\"$scope\",\"$attrs\",\"$parse\",\"$interpolate\",\"$log\",\"dateFilter\",\"uibDatepickerConfig\",\"$datepickerSuppressError\",\"$datepickerSuppressWarning\",function(a,b,c,d,e,f,g,h,i){i||e.warn(\"DatepickerController is now deprecated. Use UibDatepickerController instead.\");var j=this,k={$setViewValue:angular.noop};this.modes=[\"day\",\"month\",\"year\"],angular.forEach([\"formatDay\",\"formatMonth\",\"formatYear\",\"formatDayHeader\",\"formatDayTitle\",\"formatMonthTitle\",\"showWeeks\",\"startingDay\",\"yearRange\",\"shortcutPropagation\"],function(c,e){j[c]=angular.isDefined(b[c])?6>e?d(b[c])(a.$parent):a.$parent.$eval(b[c]):g[c]}),angular.forEach([\"minDate\",\"maxDate\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(a){j[d]=a?new Date(a):null,j.refreshView()}):j[d]=g[d]?new Date(g[d]):null}),angular.forEach([\"minMode\",\"maxMode\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(c){j[d]=angular.isDefined(c)?c:b[d],a[d]=j[d],(\"minMode\"==d&&j.modes.indexOf(a.datepickerMode)j.modes.indexOf(j[d]))&&(a.datepickerMode=j[d])}):(j[d]=g[d]||null,a[d]=j[d])}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId=\"datepicker-\"+a.$id+\"-\"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=a.$parent.$eval(b.initDate)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(k.$isEmpty(k.$modelValue)||k.$invalid)&&(j.activeDate=a,j.refreshView())})):this.activeDate=new Date,a.isActive=function(b){return 0===j.compare(b.date,j.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){k=a,k.$render=function(){j.render()}},this.render=function(){if(k.$viewValue){var a=new Date(k.$viewValue),b=!isNaN(a);b?this.activeDate=a:h||e.error('Datepicker directive: \"ng-model\" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var a=k.$viewValue?new Date(k.$viewValue):null;k.$setValidity(\"dateDisabled\",!a||this.element&&!this.isDisabled(a))}},this.createDateObject=function(a,b){var c=k.$viewValue?new Date(k.$viewValue):null;return{date:a,label:f(a,b),selected:c&&0===this.compare(a,c),disabled:this.isDisabled(a),current:0===this.compare(a,new Date),customClass:this.customClass(a)}},this.isDisabled=function(c){return this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},this.fixTimeZone=function(a){var b=a.getHours();a.setHours(23===b?b+2:0)},a.select=function(b){if(a.datepickerMode===j.minMode){var c=k.$viewValue?new Date(k.$viewValue):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),k.$setViewValue(c),k.$render()}else j.activeDate=b,a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=j.activeDate.getFullYear()+a*(j.step.years||0),c=j.activeDate.getMonth()+a*(j.step.months||0);j.activeDate.setFullYear(b,c,1),j.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===j.maxMode&&1===b||a.datepickerMode===j.minMode&&-1===b||(a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)+b])},a.keys={13:\"enter\",32:\"space\",33:\"pageup\",34:\"pagedown\",35:\"end\",36:\"home\",37:\"left\",38:\"up\",39:\"right\",40:\"down\"};var l=function(){j.element[0].focus()};a.$on(\"uib:datepicker.focus\",l),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey)if(b.preventDefault(),j.shortcutPropagation||b.stopPropagation(),\"enter\"===c||\"space\"===c){if(j.isDisabled(j.activeDate))return;a.select(j.activeDate)}else!b.ctrlKey||\"up\"!==c&&\"down\"!==c?(j.handleKeyDown(c,b),j.refreshView()):a.toggleMode(\"up\"===c?1:-1)}}]).directive(\"datepicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/datepicker.html\"},scope:{datepickerMode:\"=?\",dateDisabled:\"&\",customClass:\"&\",shortcutPropagation:\"&?\"},require:[\"datepicker\",\"^ngModel\"],controller:\"DatepickerController\",controllerAs:\"datepicker\",link:function(c,d,e,f){b||a.warn(\"datepicker is now deprecated. Use uib-datepicker instead.\");var g=f[0],h=f[1];g.init(h)}}}]).directive(\"daypicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:\"template/datepicker/day.html\",require:[\"^datepicker\",\"daypicker\"],controller:\"UibDaypickerController\",link:function(c,d,e,f){b||a.warn(\"daypicker is now deprecated. Use uib-daypicker instead.\");var g=f[0],h=f[1];h.init(g)}}}]).directive(\"monthpicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:\"template/datepicker/month.html\",require:[\"^datepicker\",\"monthpicker\"],controller:\"UibMonthpickerController\",link:function(c,d,e,f){b||a.warn(\"monthpicker is now deprecated. Use uib-monthpicker instead.\");var g=f[0],h=f[1];h.init(g)}}}]).directive(\"yearpicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:\"template/datepicker/year.html\",require:[\"^datepicker\",\"yearpicker\"],controller:\"UibYearpickerController\",link:function(c,d,e,f){b||a.warn(\"yearpicker is now deprecated. Use uib-yearpicker instead.\");var g=f[0];angular.extend(g,f[1]),g.yearpickerInit(),g.refreshView()}}}]).directive(\"datepickerPopup\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{require:[\"ngModel\",\"datepickerPopup\"],controller:\"UibDatepickerPopupController\",scope:{isOpen:\"=?\",currentText:\"@\",clearText:\"@\",closeText:\"@\",dateDisabled:\"&\",customClass:\"&\"},link:function(c,d,e,f){b||a.warn(\"datepicker-popup is now deprecated. Use uib-datepicker-popup instead.\");var g=f[0],h=f[1];h.init(g)}}}]).directive(\"datepickerPopupWrap\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/popup.html\"},link:function(){b||a.warn(\"datepicker-popup-wrap is now deprecated. Use uib-datepicker-popup-wrap instead.\")}}}]),angular.module(\"ui.bootstrap.dropdown\",[\"ui.bootstrap.position\"]).constant(\"uibDropdownConfig\",{openClass:\"open\"}).service(\"uibDropdownService\",[\"$document\",\"$rootScope\",function(a,b){var c=null;this.open=function(b){c||(a.bind(\"click\",d),a.bind(\"keydown\",e)),c&&c!==b&&(c.isOpen=!1),c=b},this.close=function(b){c===b&&(c=null,a.unbind(\"click\",d),a.unbind(\"keydown\",e))};var d=function(a){if(c&&(!a||\"disabled\"!==c.getAutoClose())){var d=c.getToggleElement();if(!(a&&d&&d[0].contains(a.target))){var e=c.getDropdownElement();a&&\"outsideClick\"===c.getAutoClose()&&e&&e[0].contains(a.target)||(c.isOpen=!1,b.$$phase||c.$apply())}}},e=function(a){27===a.which?(c.focusToggleElement(),d()):c.isKeynavEnabled()&&/(38|40)/.test(a.which)&&c.isOpen&&(a.preventDefault(),a.stopPropagation(),c.focusDropdownEntry(a.which))}}]).controller(\"UibDropdownController\",[\"$scope\",\"$element\",\"$attrs\",\"$parse\",\"uibDropdownConfig\",\"uibDropdownService\",\"$animate\",\"$uibPosition\",\"$document\",\"$compile\",\"$templateRequest\",function(a,b,c,d,e,f,g,h,i,j,k){var l,m,n=this,o=a.$new(),p=e.openClass,q=angular.noop,r=c.onToggle?d(c.onToggle):angular.noop,s=!1,t=!1;b.addClass(\"dropdown\"),this.init=function(){c.isOpen&&(m=d(c.isOpen),q=m.assign,a.$watch(m,function(a){o.isOpen=!!a})),s=angular.isDefined(c.dropdownAppendToBody),t=angular.isDefined(c.uibKeyboardNav),s&&n.dropdownMenu&&(i.find(\"body\").append(n.dropdownMenu),b.on(\"$destroy\",function(){n.dropdownMenu.remove()}))},this.toggle=function(a){return o.isOpen=arguments.length?!!a:!o.isOpen},this.isOpen=function(){return o.isOpen},o.getToggleElement=function(){return n.toggleElement},o.getAutoClose=function(){return c.autoClose||\"always\"},o.getElement=function(){return b},o.isKeynavEnabled=function(){return t},o.focusDropdownEntry=function(a){var c=n.dropdownMenu?angular.element(n.dropdownMenu).find(\"a\"):angular.element(b).find(\"ul\").eq(0).find(\"a\");switch(a){case 40:angular.isNumber(n.selectedOption)?n.selectedOption=n.selectedOption===c.length-1?n.selectedOption:n.selectedOption+1:n.selectedOption=0;break;case 38:angular.isNumber(n.selectedOption)?n.selectedOption=0===n.selectedOption?0:n.selectedOption-1:n.selectedOption=c.length-1}c[n.selectedOption].focus()},o.getDropdownElement=function(){return n.dropdownMenu},o.focusToggleElement=function(){n.toggleElement&&n.toggleElement[0].focus()},o.$watch(\"isOpen\",function(c,d){if(s&&n.dropdownMenu){var e=h.positionElements(b,n.dropdownMenu,\"bottom-left\",!0),i={top:e.top+\"px\",display:c?\"block\":\"none\"},m=n.dropdownMenu.hasClass(\"dropdown-menu-right\");m?(i.left=\"auto\",i.right=window.innerWidth-(e.left+b.prop(\"offsetWidth\"))+\"px\"):(i.left=e.left+\"px\",i.right=\"auto\"),n.dropdownMenu.css(i)}if(g[c?\"addClass\":\"removeClass\"](b,p).then(function(){angular.isDefined(c)&&c!==d&&r(a,{open:!!c})}),c)n.dropdownMenuTemplateUrl&&k(n.dropdownMenuTemplateUrl).then(function(a){l=o.$new(),j(a.trim())(l,function(a){var b=a;n.dropdownMenu.replaceWith(b),n.dropdownMenu=b})}),o.focusToggleElement(),f.open(o);else{if(n.dropdownMenuTemplateUrl){l&&l.$destroy();var t=angular.element('
    ');n.dropdownMenu.replaceWith(t),n.dropdownMenu=t}f.close(o),n.selectedOption=null}angular.isFunction(q)&&q(a,c)}),a.$on(\"$locationChangeSuccess\",function(){\"disabled\"!==o.getAutoClose()&&(o.isOpen=!1)});var u=a.$on(\"$destroy\",function(){o.$destroy()});o.$on(\"$destroy\",u)}]).directive(\"uibDropdown\",function(){return{controller:\"UibDropdownController\",link:function(a,b,c,d){d.init()}}}).directive(\"uibDropdownMenu\",function(){return{restrict:\"AC\",require:\"?^uibDropdown\",link:function(a,b,c,d){if(d&&!angular.isDefined(c.dropdownNested)){b.addClass(\"dropdown-menu\");var e=c.templateUrl;e&&(d.dropdownMenuTemplateUrl=e),d.dropdownMenu||(d.dropdownMenu=b)}}}}).directive(\"uibKeyboardNav\",function(){return{restrict:\"A\",require:\"?^uibDropdown\",link:function(a,b,c,d){b.bind(\"keydown\",function(a){if(-1!==[38,40].indexOf(a.which)){a.preventDefault(),a.stopPropagation();var b=d.dropdownMenu.find(\"a\");switch(a.which){case 40:angular.isNumber(d.selectedOption)?d.selectedOption=d.selectedOption===b.length-1?d.selectedOption:d.selectedOption+1:d.selectedOption=0;break;case 38:angular.isNumber(d.selectedOption)?d.selectedOption=0===d.selectedOption?0:d.selectedOption-1:d.selectedOption=b.length-1}b[d.selectedOption].focus()}})}}}).directive(\"uibDropdownToggle\",function(){return{require:\"?^uibDropdown\",link:function(a,b,c,d){if(d){b.addClass(\"dropdown-toggle\"),d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass(\"disabled\")||c.disabled||a.$apply(function(){d.toggle()})};b.bind(\"click\",e),b.attr({\"aria-haspopup\":!0,\"aria-expanded\":!1}),a.$watch(d.isOpen,function(a){b.attr(\"aria-expanded\",!!a)}),a.$on(\"$destroy\",function(){b.unbind(\"click\",e)})}}}}),angular.module(\"ui.bootstrap.dropdown\").value(\"$dropdownSuppressWarning\",!1).service(\"dropdownService\",[\"$log\",\"$dropdownSuppressWarning\",\"uibDropdownService\",function(a,b,c){b||a.warn(\"dropdownService is now deprecated. Use uibDropdownService instead.\"),angular.extend(this,c)}]).controller(\"DropdownController\",[\"$scope\",\"$element\",\"$attrs\",\"$parse\",\"uibDropdownConfig\",\"uibDropdownService\",\"$animate\",\"$uibPosition\",\"$document\",\"$compile\",\"$templateRequest\",\"$log\",\"$dropdownSuppressWarning\",function(a,b,c,d,e,f,g,h,i,j,k,l,m){m||l.warn(\"DropdownController is now deprecated. Use UibDropdownController instead.\");var n,o,p=this,q=a.$new(),r=e.openClass,s=angular.noop,t=c.onToggle?d(c.onToggle):angular.noop,u=!1,v=!1;b.addClass(\"dropdown\"),this.init=function(){c.isOpen&&(o=d(c.isOpen),s=o.assign,a.$watch(o,function(a){q.isOpen=!!a})),u=angular.isDefined(c.dropdownAppendToBody),v=angular.isDefined(c.uibKeyboardNav),u&&p.dropdownMenu&&(i.find(\"body\").append(p.dropdownMenu),b.on(\"$destroy\",function(){p.dropdownMenu.remove()}))},this.toggle=function(a){return q.isOpen=arguments.length?!!a:!q.isOpen},this.isOpen=function(){return q.isOpen},q.getToggleElement=function(){return p.toggleElement},q.getAutoClose=function(){return c.autoClose||\"always\"},q.getElement=function(){return b},q.isKeynavEnabled=function(){return v},q.focusDropdownEntry=function(a){var c=p.dropdownMenu?angular.element(p.dropdownMenu).find(\"a\"):angular.element(b).find(\"ul\").eq(0).find(\"a\");switch(a){case 40:angular.isNumber(p.selectedOption)?p.selectedOption=p.selectedOption===c.length-1?p.selectedOption:p.selectedOption+1:p.selectedOption=0;break;case 38:angular.isNumber(p.selectedOption)?p.selectedOption=0===p.selectedOption?0:p.selectedOption-1:p.selectedOption=c.length-1}c[p.selectedOption].focus()},q.getDropdownElement=function(){return p.dropdownMenu},q.focusToggleElement=function(){p.toggleElement&&p.toggleElement[0].focus()},q.$watch(\"isOpen\",function(c,d){if(u&&p.dropdownMenu){var e=h.positionElements(b,p.dropdownMenu,\"bottom-left\",!0),i={top:e.top+\"px\",display:c?\"block\":\"none\"},l=p.dropdownMenu.hasClass(\"dropdown-menu-right\");l?(i.left=\"auto\",i.right=window.innerWidth-(e.left+b.prop(\"offsetWidth\"))+\"px\"):(i.left=e.left+\"px\",i.right=\"auto\"),p.dropdownMenu.css(i)}if(g[c?\"addClass\":\"removeClass\"](b,r).then(function(){angular.isDefined(c)&&c!==d&&t(a,{open:!!c})}),c)p.dropdownMenuTemplateUrl&&k(p.dropdownMenuTemplateUrl).then(function(a){n=q.$new(),j(a.trim())(n,function(a){var b=a;p.dropdownMenu.replaceWith(b),p.dropdownMenu=b})}),q.focusToggleElement(),f.open(q);else{if(p.dropdownMenuTemplateUrl){n&&n.$destroy();var m=angular.element('
      ');p.dropdownMenu.replaceWith(m),p.dropdownMenu=m}f.close(q),p.selectedOption=null}angular.isFunction(s)&&s(a,c)}),a.$on(\"$locationChangeSuccess\",function(){\"disabled\"!==q.getAutoClose()&&(q.isOpen=!1)});var w=a.$on(\"$destroy\",function(){q.$destroy()});q.$on(\"$destroy\",w)}]).directive(\"dropdown\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{controller:\"DropdownController\",link:function(c,d,e,f){b||a.warn(\"dropdown is now deprecated. Use uib-dropdown instead.\"),f.init()}}}]).directive(\"dropdownMenu\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{restrict:\"AC\",require:\"?^dropdown\",link:function(c,d,e,f){if(f&&!angular.isDefined(e.dropdownNested)){b||a.warn(\"dropdown-menu is now deprecated. Use uib-dropdown-menu instead.\"),d.addClass(\"dropdown-menu\");var g=e.templateUrl;g&&(f.dropdownMenuTemplateUrl=g),f.dropdownMenu||(f.dropdownMenu=d)}}}}]).directive(\"keyboardNav\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{restrict:\"A\",require:\"?^dropdown\",link:function(c,d,e,f){b||a.warn(\"keyboard-nav is now deprecated. Use uib-keyboard-nav instead.\"),d.bind(\"keydown\",function(a){if(-1!==[38,40].indexOf(a.which)){a.preventDefault(),a.stopPropagation();var b=f.dropdownMenu.find(\"a\");switch(a.which){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===b.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=b.length-1}b[f.selectedOption].focus()}})}}}]).directive(\"dropdownToggle\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{require:\"?^dropdown\",link:function(c,d,e,f){if(b||a.warn(\"dropdown-toggle is now deprecated. Use uib-dropdown-toggle instead.\"),f){d.addClass(\"dropdown-toggle\"),f.toggleElement=d;var g=function(a){a.preventDefault(),d.hasClass(\"disabled\")||e.disabled||c.$apply(function(){f.toggle()})};d.bind(\"click\",g),d.attr({\"aria-haspopup\":!0,\"aria-expanded\":!1}),c.$watch(f.isOpen,function(a){d.attr(\"aria-expanded\",!!a)}),c.$on(\"$destroy\",function(){d.unbind(\"click\",g)})}}}}]),angular.module(\"ui.bootstrap.stackedMap\",[]).factory(\"$$stackedMap\",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c0&&(b=u.top().value,b.modalDomEl.toggleClass(b.windowTopClass||\"\",a))}function m(){if(q&&-1==j()){var a=r;n(q,r,function(){a=null}),q=void 0,r=void 0}}function n(b,c,d){function e(){e.done||(e.done=!0,p?p(b,{event:\"leave\"}).start().then(function(){b.remove()}):a.leave(b),c.$destroy(),d&&d())}var g,h=null,i=function(){return g||(g=f.defer(),h=g.promise),function(){g.resolve()}};return c.$broadcast(w.NOW_CLOSING_EVENT,i),f.when(h).then(e)}function o(a,b,c){return!a.value.modalScope.$broadcast(\"modal.closing\",b,c).defaultPrevented}var p=null;g.has(\"$animateCss\")&&(p=g.get(\"$animateCss\"));var q,r,s,t=\"modal-open\",u=i.createNew(),v=h.createNew(),w={NOW_CLOSING_EVENT:\"modal.stack.now-closing\"},x=0,y=\"a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]\";return e.$watch(j,function(a){r&&(r.index=a)}),c.bind(\"keydown\",function(a){if(a.isDefaultPrevented())return a;var b=u.top();if(b&&b.value.keyboard)switch(a.which){case 27:a.preventDefault(),e.$apply(function(){w.dismiss(b.key,\"escape key press\")});break;case 9:w.loadFocusElementList(b);var c=!1;a.shiftKey?w.isFocusInFirstItem(a)&&(c=w.focusLastFocusableElement()):w.isFocusInLastItem(a)&&(c=w.focusFirstFocusableElement()),c&&(a.preventDefault(),a.stopPropagation())}}),w.open=function(a,b){var f=c[0].activeElement,g=b.openedClass||t;l(!1),u.add(a,{deferred:b.deferred,renderDeferred:b.renderDeferred,modalScope:b.scope,backdrop:b.backdrop,keyboard:b.keyboard,openedClass:b.openedClass,windowTopClass:b.windowTopClass}),v.put(g,a);var h=c.find(\"body\").eq(0),i=j();if(i>=0&&!q){r=e.$new(!0),r.index=i;var k=angular.element('
      ');k.attr(\"backdrop-class\",b.backdropClass),b.animation&&k.attr(\"modal-animation\",\"true\"),q=d(k)(r),h.append(q)}var m=angular.element('
      ');m.attr({\"template-url\":b.windowTemplateUrl,\"window-class\":b.windowClass,\"window-top-class\":b.windowTopClass,size:b.size,index:u.length()-1,animate:\"animate\"}).html(b.content),b.animation&&m.attr(\"modal-animation\",\"true\");var n=d(m)(b.scope);u.top().value.modalDomEl=n,u.top().value.modalOpener=f,h.append(n),h.addClass(g),w.clearFocusListCache()},w.close=function(a,b){var c=u.get(a);return c&&o(c,b,!0)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.resolve(b),k(a,c.value.modalOpener),!0):!c},w.dismiss=function(a,b){var c=u.get(a);return c&&o(c,b,!1)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.reject(b),k(a,c.value.modalOpener),!0):!c},w.dismissAll=function(a){for(var b=this.getTop();b&&this.dismiss(b.key,a);)b=this.getTop()},w.getTop=function(){return u.top()},w.modalRendered=function(a){var b=u.get(a);b&&b.value.renderDeferred.resolve()},w.focusFirstFocusableElement=function(){return s.length>0?(s[0].focus(),!0):!1},w.focusLastFocusableElement=function(){return s.length>0?(s[s.length-1].focus(),!0):!1},w.isFocusInFirstItem=function(a){return s.length>0?(a.target||a.srcElement)==s[0]:!1},w.isFocusInLastItem=function(a){return s.length>0?(a.target||a.srcElement)==s[s.length-1]:!1},w.clearFocusListCache=function(){s=[],x=0},w.loadFocusElementList=function(a){if((void 0===s||!s.length)&&a){var b=a.value.modalDomEl;b&&b.length&&(s=b[0].querySelectorAll(y))}},w}]).provider(\"$uibModal\",function(){var a={options:{animation:!0,backdrop:!0,keyboard:!0},$get:[\"$injector\",\"$rootScope\",\"$q\",\"$templateRequest\",\"$controller\",\"$uibModalStack\",\"$modalSuppressWarning\",\"$log\",function(b,c,d,e,f,g,h,i){function j(a){return a.template?d.when(a.template):e(angular.isFunction(a.templateUrl)?a.templateUrl():a.templateUrl)}function k(a){var c=[];return angular.forEach(a,function(a){angular.isFunction(a)||angular.isArray(a)?c.push(d.when(b.invoke(a))):angular.isString(a)?c.push(d.when(b.get(a))):c.push(d.when(a))}),c}var l={},m=null;return l.getPromiseChain=function(){return m},l.open=function(b){function e(){return r}var l=d.defer(),n=d.defer(),o=d.defer(),p={result:l.promise,opened:n.promise,rendered:o.promise,close:function(a){return g.close(p,a)},dismiss:function(a){return g.dismiss(p,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error(\"One of template or templateUrl options is required.\");var q,r=d.all([j(b)].concat(k(b.resolve)));return q=m=d.all([m]).then(e,e).then(function(a){var d=(b.scope||c).$new();d.$close=p.close,d.$dismiss=p.dismiss,d.$on(\"$destroy\",function(){d.$$uibDestructionScheduled||d.$dismiss(\"$uibUnscheduledDestruction\")});var e,j={},k=1;b.controller&&(j.$scope=d,j.$uibModalInstance=p,Object.defineProperty(j,\"$modalInstance\",{get:function(){return h||i.warn(\"$modalInstance is now deprecated. Use $uibModalInstance instead.\"),p}}),angular.forEach(b.resolve,function(b,c){j[c]=a[k++]}),e=f(b.controller,j),b.controllerAs&&(b.bindToController&&angular.extend(e,d),d[b.controllerAs]=e)),g.open(p,{scope:d,deferred:l,renderDeferred:o,content:a[0],animation:b.animation,backdrop:b.backdrop,keyboard:b.keyboard,backdropClass:b.backdropClass,windowTopClass:b.windowTopClass,windowClass:b.windowClass,windowTemplateUrl:b.windowTemplateUrl,size:b.size,openedClass:b.openedClass}),n.resolve(!0)},function(a){n.reject(a),l.reject(a)})[\"finally\"](function(){m===q&&(m=null)}),p},l}]};return a}),angular.module(\"ui.bootstrap.modal\").value(\"$modalSuppressWarning\",!1).directive(\"modalBackdrop\",[\"$animate\",\"$injector\",\"$modalStack\",\"$log\",\"$modalSuppressWarning\",function(a,b,c,d,e){function f(b,f,h){e||d.warn(\"modal-backdrop is now deprecated. Use uib-modal-backdrop instead.\"),f.addClass(\"modal-backdrop\"),h.modalInClass&&(g?g(f,{addClass:h.modalInClass}).start():a.addClass(f,h.modalInClass),b.$on(c.NOW_CLOSING_EVENT,function(b,c){var d=c();g?g(f,{removeClass:h.modalInClass}).start().then(d):a.removeClass(f,h.modalInClass).then(d)}))}var g=null;return b.has(\"$animateCss\")&&(g=b.get(\"$animateCss\")),{replace:!0,templateUrl:\"template/modal/backdrop.html\",compile:function(a,b){return a.addClass(b.backdropClass),f}}}]).directive(\"modalWindow\",[\"$modalStack\",\"$q\",\"$animate\",\"$injector\",\"$log\",\"$modalSuppressWarning\",function(a,b,c,d,e,f){var g=null;return d.has(\"$animateCss\")&&(g=d.get(\"$animateCss\")),{scope:{index:\"@\"},replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/modal/window.html\"},link:function(d,h,i){f||e.warn(\"modal-window is now deprecated. Use uib-modal-window instead.\"),h.addClass(i.windowClass||\"\"),h.addClass(i.windowTopClass||\"\"),d.size=i.size,d.close=function(b){var c=a.getTop();c&&c.value.backdrop&&\"static\"!==c.value.backdrop&&b.target===b.currentTarget&&(b.preventDefault(),b.stopPropagation(),a.dismiss(c.key,\"backdrop click\"))},h.on(\"click\",d.close),d.$isRendered=!0;var j=b.defer();i.$observe(\"modalRender\",function(a){\"true\"==a&&j.resolve()}),j.promise.then(function(){var e=null;i.modalInClass&&(e=g?g(h,{addClass:i.modalInClass}).start():c.addClass(h,i.modalInClass),d.$on(a.NOW_CLOSING_EVENT,function(a,b){var d=b();g?g(h,{removeClass:i.modalInClass}).start().then(d):c.removeClass(h,i.modalInClass).then(d)})),b.when(e).then(function(){var a=h[0].querySelector(\"[autofocus]\");a?a.focus():h[0].focus()});var f=a.getTop();f&&a.modalRendered(f.key)})}}}]).directive(\"modalAnimationClass\",[\"$log\",\"$modalSuppressWarning\",function(a,b){return{compile:function(c,d){b||a.warn(\"modal-animation-class is now deprecated. Use uib-modal-animation-class instead.\"),d.modalAnimation&&c.addClass(d.modalAnimationClass)}}}]).directive(\"modalTransclude\",[\"$log\",\"$modalSuppressWarning\",function(a,b){return{link:function(c,d,e,f,g){\r\nb||a.warn(\"modal-transclude is now deprecated. Use uib-modal-transclude instead.\"),g(c.$parent,function(a){d.empty(),d.append(a)})}}}]).service(\"$modalStack\",[\"$animate\",\"$timeout\",\"$document\",\"$compile\",\"$rootScope\",\"$q\",\"$injector\",\"$$multiMap\",\"$$stackedMap\",\"$uibModalStack\",\"$log\",\"$modalSuppressWarning\",function(a,b,c,d,e,f,g,h,i,j,k,l){l||k.warn(\"$modalStack is now deprecated. Use $uibModalStack instead.\"),angular.extend(this,j)}]).provider(\"$modal\",[\"$uibModalProvider\",function(a){angular.extend(this,a),this.$get=[\"$injector\",\"$log\",\"$modalSuppressWarning\",function(b,c,d){return d||c.warn(\"$modal is now deprecated. Use $uibModal instead.\"),b.invoke(a.$get)}]}]),angular.module(\"ui.bootstrap.pagination\",[]).controller(\"UibPaginationController\",[\"$scope\",\"$attrs\",\"$parse\",function(a,b,c){var d=this,e={$setViewValue:angular.noop},f=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(g,h){e=g,this.config=h,e.$render=function(){d.render()},b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){d.itemsPerPage=parseInt(b,10),a.totalPages=d.calculateTotalPages()}):this.itemsPerPage=h.itemsPerPage,a.$watch(\"totalItems\",function(){a.totalPages=d.calculateTotalPages()}),a.$watch(\"totalPages\",function(b){f(a.$parent,b),a.page>b?a.selectPage(b):e.$render()})},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.render=function(){a.page=parseInt(e.$viewValue,10)||1},a.selectPage=function(b,c){c&&c.preventDefault();var d=!a.ngDisabled||!c;d&&a.page!==b&&b>0&&b<=a.totalPages&&(c&&c.target&&c.target.blur(),e.$setViewValue(b),e.$render())},a.getText=function(b){return a[b+\"Text\"]||d.config[b+\"Text\"]},a.noPrevious=function(){return 1===a.page},a.noNext=function(){return a.page===a.totalPages}}]).constant(\"uibPaginationConfig\",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:\"First\",previousText:\"Previous\",nextText:\"Next\",lastText:\"Last\",rotate:!0}).directive(\"uibPagination\",[\"$parse\",\"uibPaginationConfig\",function(a,b){return{restrict:\"EA\",scope:{totalItems:\"=\",firstText:\"@\",previousText:\"@\",nextText:\"@\",lastText:\"@\",ngDisabled:\"=\"},require:[\"uibPagination\",\"?ngModel\"],controller:\"UibPaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pagination.html\"},replace:!0,link:function(c,d,e,f){function g(a,b,c){return{number:a,text:b,active:c}}function h(a,b){var c=[],d=1,e=b,f=angular.isDefined(k)&&b>k;f&&(l?(d=Math.max(a-Math.floor(k/2),1),e=d+k-1,e>b&&(e=b,d=e-k+1)):(d=(Math.ceil(a/k)-1)*k+1,e=Math.min(d+k-1,b)));for(var h=d;e>=h;h++){var i=g(h,h,h===a);c.push(i)}if(f&&!l){if(d>1){var j=g(d-1,\"...\",!1);c.unshift(j)}if(b>e){var m=g(e+1,\"...\",!1);c.push(m)}}return c}var i=f[0],j=f[1];if(j){var k=angular.isDefined(e.maxSize)?c.$parent.$eval(e.maxSize):b.maxSize,l=angular.isDefined(e.rotate)?c.$parent.$eval(e.rotate):b.rotate;c.boundaryLinks=angular.isDefined(e.boundaryLinks)?c.$parent.$eval(e.boundaryLinks):b.boundaryLinks,c.directionLinks=angular.isDefined(e.directionLinks)?c.$parent.$eval(e.directionLinks):b.directionLinks,i.init(j,b),e.maxSize&&c.$parent.$watch(a(e.maxSize),function(a){k=parseInt(a,10),i.render()});var m=i.render;i.render=function(){m(),c.page>0&&c.page<=c.totalPages&&(c.pages=h(c.page,c.totalPages))}}}}}]).constant(\"uibPagerConfig\",{itemsPerPage:10,previousText:\"« Previous\",nextText:\"Next »\",align:!0}).directive(\"uibPager\",[\"uibPagerConfig\",function(a){return{restrict:\"EA\",scope:{totalItems:\"=\",previousText:\"@\",nextText:\"@\",ngDisabled:\"=\"},require:[\"uibPager\",\"?ngModel\"],controller:\"UibPaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pager.html\"},replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&(b.align=angular.isDefined(d.align)?b.$parent.$eval(d.align):a.align,f.init(g,a))}}}]),angular.module(\"ui.bootstrap.pagination\").value(\"$paginationSuppressWarning\",!1).controller(\"PaginationController\",[\"$scope\",\"$attrs\",\"$parse\",\"$log\",\"$paginationSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"PaginationController is now deprecated. Use UibPaginationController instead.\");var f=this,g={$setViewValue:angular.noop},h=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(d,e){g=d,this.config=e,g.$render=function(){f.render()},b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){f.itemsPerPage=parseInt(b,10),a.totalPages=f.calculateTotalPages()}):this.itemsPerPage=e.itemsPerPage,a.$watch(\"totalItems\",function(){a.totalPages=f.calculateTotalPages()}),a.$watch(\"totalPages\",function(b){h(a.$parent,b),a.page>b?a.selectPage(b):g.$render()})},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.render=function(){a.page=parseInt(g.$viewValue,10)||1},a.selectPage=function(b,c){c&&c.preventDefault();var d=!a.ngDisabled||!c;d&&a.page!==b&&b>0&&b<=a.totalPages&&(c&&c.target&&c.target.blur(),g.$setViewValue(b),g.$render())},a.getText=function(b){return a[b+\"Text\"]||f.config[b+\"Text\"]},a.noPrevious=function(){return 1===a.page},a.noNext=function(){return a.page===a.totalPages}}]).directive(\"pagination\",[\"$parse\",\"uibPaginationConfig\",\"$log\",\"$paginationSuppressWarning\",function(a,b,c,d){return{restrict:\"EA\",scope:{totalItems:\"=\",firstText:\"@\",previousText:\"@\",nextText:\"@\",lastText:\"@\",ngDisabled:\"=\"},require:[\"pagination\",\"?ngModel\"],controller:\"PaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pagination.html\"},replace:!0,link:function(e,f,g,h){function i(a,b,c){return{number:a,text:b,active:c}}function j(a,b){var c=[],d=1,e=b,f=angular.isDefined(m)&&b>m;f&&(n?(d=Math.max(a-Math.floor(m/2),1),e=d+m-1,e>b&&(e=b,d=e-m+1)):(d=(Math.ceil(a/m)-1)*m+1,e=Math.min(d+m-1,b)));for(var g=d;e>=g;g++){var h=i(g,g,g===a);c.push(h)}if(f&&!n){if(d>1){var j=i(d-1,\"...\",!1);c.unshift(j)}if(b>e){var k=i(e+1,\"...\",!1);c.push(k)}}return c}d||c.warn(\"pagination is now deprecated. Use uib-pagination instead.\");var k=h[0],l=h[1];if(l){var m=angular.isDefined(g.maxSize)?e.$parent.$eval(g.maxSize):b.maxSize,n=angular.isDefined(g.rotate)?e.$parent.$eval(g.rotate):b.rotate;e.boundaryLinks=angular.isDefined(g.boundaryLinks)?e.$parent.$eval(g.boundaryLinks):b.boundaryLinks,e.directionLinks=angular.isDefined(g.directionLinks)?e.$parent.$eval(g.directionLinks):b.directionLinks,k.init(l,b),g.maxSize&&e.$parent.$watch(a(g.maxSize),function(a){m=parseInt(a,10),k.render()});var o=k.render;k.render=function(){o(),e.page>0&&e.page<=e.totalPages&&(e.pages=j(e.page,e.totalPages))}}}}}]).directive(\"pager\",[\"uibPagerConfig\",\"$log\",\"$paginationSuppressWarning\",function(a,b,c){return{restrict:\"EA\",scope:{totalItems:\"=\",previousText:\"@\",nextText:\"@\",ngDisabled:\"=\"},require:[\"pager\",\"?ngModel\"],controller:\"PaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pager.html\"},replace:!0,link:function(d,e,f,g){c||b.warn(\"pager is now deprecated. Use uib-pager instead.\");var h=g[0],i=g[1];i&&(d.align=angular.isDefined(f.align)?d.$parent.$eval(f.align):a.align,h.init(i,a))}}}]),angular.module(\"ui.bootstrap.tooltip\",[\"ui.bootstrap.position\",\"ui.bootstrap.stackedMap\"]).provider(\"$uibTooltip\",function(){function a(a){var b=/[A-Z]/g,c=\"-\";return a.replace(b,function(a,b){return(b?c:\"\")+a.toLowerCase()})}var b={placement:\"top\",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},c={mouseenter:\"mouseleave\",click:\"click\",focus:\"blur\",none:\"\"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=[\"$window\",\"$compile\",\"$timeout\",\"$document\",\"$uibPosition\",\"$interpolate\",\"$rootScope\",\"$parse\",\"$$stackedMap\",function(e,f,g,h,i,j,k,l,m){var n=m.createNew();return h.on(\"keypress\",function(a){if(27===a.which){var b=n.top();b&&(b.value.close(),n.removeTop(),b=null)}}),function(e,k,m,o){function p(a){var b=(a||o.trigger||m).split(\" \"),d=b.map(function(a){return c[a]||a});return{show:b,hide:d}}o=angular.extend({},b,d,o);var q=a(e),r=j.startSymbol(),s=j.endSymbol(),t=\"
      ';return{compile:function(a,b){var c=f(t);return function(a,b,d,f){function j(){L.isOpen?q():m()}function m(){(!K||a.$eval(d[k+\"Enable\"]))&&(u(),x(),L.popupDelay?F||(F=g(r,L.popupDelay,!1)):r())}function q(){s(),L.popupCloseDelay?G||(G=g(t,L.popupCloseDelay,!1)):t()}function r(){return s(),u(),L.content?(v(),void L.$evalAsync(function(){L.isOpen=!0,y(!0),Q()})):angular.noop}function s(){F&&(g.cancel(F),F=null),H&&(g.cancel(H),H=null)}function t(){s(),u(),L&&L.$evalAsync(function(){L.isOpen=!1,y(!1),L.animation?E||(E=g(w,150,!1)):w()})}function u(){G&&(g.cancel(G),G=null),E&&(g.cancel(E),E=null)}function v(){C||(D=L.$new(),C=c(D,function(a){I?h.find(\"body\").append(a):b.after(a)}),z())}function w(){A(),E=null,C&&(C.remove(),C=null),D&&(D.$destroy(),D=null)}function x(){L.title=d[k+\"Title\"],O?L.content=O(a):L.content=d[e],L.popupClass=d[k+\"Class\"],L.placement=angular.isDefined(d[k+\"Placement\"])?d[k+\"Placement\"]:o.placement;var b=parseInt(d[k+\"PopupDelay\"],10),c=parseInt(d[k+\"PopupCloseDelay\"],10);L.popupDelay=isNaN(b)?o.popupDelay:b,L.popupCloseDelay=isNaN(c)?o.popupCloseDelay:c}function y(b){N&&angular.isFunction(N.assign)&&N.assign(a,b)}function z(){P.length=0,O?(P.push(a.$watch(O,function(a){L.content=a,!a&&L.isOpen&&t()})),P.push(D.$watch(function(){M||(M=!0,D.$$postDigest(function(){M=!1,L&&L.isOpen&&Q()}))}))):P.push(d.$observe(e,function(a){L.content=a,!a&&L.isOpen?t():Q()})),P.push(d.$observe(k+\"Title\",function(a){L.title=a,L.isOpen&&Q()})),P.push(d.$observe(k+\"Placement\",function(a){L.placement=a?a:o.placement,L.isOpen&&Q()}))}function A(){P.length&&(angular.forEach(P,function(a){a()}),P.length=0)}function B(){var a=d[k+\"Trigger\"];R(),J=p(a),\"none\"!==J.show&&J.show.forEach(function(a,c){a===J.hide[c]?b[0].addEventListener(a,j):a&&(b[0].addEventListener(a,m),J.hide[c].split(\" \").forEach(function(a){b[0].addEventListener(a,q)})),b.on(\"keypress\",function(a){27===a.which&&q()})})}var C,D,E,F,G,H,I=angular.isDefined(o.appendToBody)?o.appendToBody:!1,J=p(void 0),K=angular.isDefined(d[k+\"Enable\"]),L=a.$new(!0),M=!1,N=angular.isDefined(d[k+\"IsOpen\"])?l(d[k+\"IsOpen\"]):!1,O=o.useContentExp?l(d[e]):!1,P=[],Q=function(){C&&C.html()&&(H||(H=g(function(){C.css({top:0,left:0});var a=i.positionElements(b,C,L.placement,I);a.top+=\"px\",a.left+=\"px\",a.visibility=\"visible\",C.css(a),H=null},0,!1)))};L.origScope=a,L.isOpen=!1,n.add(L,{close:t}),L.contentExp=function(){return L.content},d.$observe(\"disabled\",function(a){a&&s(),a&&L.isOpen&&t()}),N&&a.$watch(N,function(a){L&&!a===L.isOpen&&j()});var R=function(){J.show.forEach(function(a){b.unbind(a,m)}),J.hide.forEach(function(a){a.split(\" \").forEach(function(a){b[0].removeEventListener(a,q)})})};B();var S=a.$eval(d[k+\"Animation\"]);L.animation=angular.isDefined(S)?!!S:o.animation;var T=a.$eval(d[k+\"AppendToBody\"]);I=angular.isDefined(T)?T:I,I&&a.$on(\"$locationChangeSuccess\",function(){L.isOpen&&t()}),a.$on(\"$destroy\",function(){s(),u(),R(),w(),n.remove(L),L=null})}}}}}]}).directive(\"uibTooltipTemplateTransclude\",[\"$animate\",\"$sce\",\"$compile\",\"$templateRequest\",function(a,b,c,d){return{link:function(e,f,g){var h,i,j,k=e.$eval(g.tooltipTemplateTranscludeScope),l=0,m=function(){i&&(i.remove(),i=null),h&&(h.$destroy(),h=null),j&&(a.leave(j).then(function(){i=null}),i=j,j=null)};e.$watch(b.parseAsResourceUrl(g.uibTooltipTemplateTransclude),function(b){var g=++l;b?(d(b,!0).then(function(d){if(g===l){var e=k.$new(),i=d,n=c(i)(e,function(b){m(),a.enter(b,f)});h=e,j=n,h.$emit(\"$includeContentLoaded\",b)}},function(){g===l&&(m(),e.$emit(\"$includeContentError\",b))}),e.$emit(\"$includeContentRequested\",b)):m()}),e.$on(\"$destroy\",m)}}}]).directive(\"uibTooltipClasses\",function(){return{restrict:\"A\",link:function(a,b,c){a.placement&&b.addClass(a.placement),a.popupClass&&b.addClass(a.popupClass),a.animation()&&b.addClass(c.tooltipAnimationClass)}}}).directive(\"uibTooltipPopup\",function(){return{replace:!0,scope:{content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-popup.html\",link:function(a,b){b.addClass(\"tooltip\")}}}).directive(\"uibTooltip\",[\"$uibTooltip\",function(a){return a(\"uibTooltip\",\"tooltip\",\"mouseenter\")}]).directive(\"uibTooltipTemplatePopup\",function(){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/tooltip/tooltip-template-popup.html\",link:function(a,b){b.addClass(\"tooltip\")}}}).directive(\"uibTooltipTemplate\",[\"$uibTooltip\",function(a){return a(\"uibTooltipTemplate\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]).directive(\"uibTooltipHtmlPopup\",function(){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-html-popup.html\",link:function(a,b){b.addClass(\"tooltip\")}}}).directive(\"uibTooltipHtml\",[\"$uibTooltip\",function(a){return a(\"uibTooltipHtml\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]),angular.module(\"ui.bootstrap.tooltip\").value(\"$tooltipSuppressWarning\",!1).provider(\"$tooltip\",[\"$uibTooltipProvider\",function(a){angular.extend(this,a),this.$get=[\"$log\",\"$tooltipSuppressWarning\",\"$injector\",function(b,c,d){return c||b.warn(\"$tooltip is now deprecated. Use $uibTooltip instead.\"),d.invoke(a.$get)}]}]).directive(\"tooltipTemplateTransclude\",[\"$animate\",\"$sce\",\"$compile\",\"$templateRequest\",\"$log\",\"$tooltipSuppressWarning\",function(a,b,c,d,e,f){return{link:function(g,h,i){f||e.warn(\"tooltip-template-transclude is now deprecated. Use uib-tooltip-template-transclude instead.\");var j,k,l,m=g.$eval(i.tooltipTemplateTranscludeScope),n=0,o=function(){k&&(k.remove(),k=null),j&&(j.$destroy(),j=null),l&&(a.leave(l).then(function(){k=null}),k=l,l=null)};g.$watch(b.parseAsResourceUrl(i.tooltipTemplateTransclude),function(b){var e=++n;b?(d(b,!0).then(function(d){if(e===n){var f=m.$new(),g=d,i=c(g)(f,function(b){o(),a.enter(b,h)});j=f,l=i,j.$emit(\"$includeContentLoaded\",b)}},function(){e===n&&(o(),g.$emit(\"$includeContentError\",b))}),g.$emit(\"$includeContentRequested\",b)):o()}),g.$on(\"$destroy\",o)}}}]).directive(\"tooltipClasses\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{restrict:\"A\",link:function(c,d,e){b||a.warn(\"tooltip-classes is now deprecated. Use uib-tooltip-classes instead.\"),c.placement&&d.addClass(c.placement),c.popupClass&&d.addClass(c.popupClass),c.animation()&&d.addClass(e.tooltipAnimationClass)}}}]).directive(\"tooltipPopup\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{replace:!0,scope:{content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-popup.html\",link:function(c,d){b||a.warn(\"tooltip-popup is now deprecated. Use uib-tooltip-popup instead.\"),d.addClass(\"tooltip\")}}}]).directive(\"tooltip\",[\"$tooltip\",function(a){return a(\"tooltip\",\"tooltip\",\"mouseenter\")}]).directive(\"tooltipTemplatePopup\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/tooltip/tooltip-template-popup.html\",link:function(c,d){b||a.warn(\"tooltip-template-popup is now deprecated. Use uib-tooltip-template-popup instead.\"),d.addClass(\"tooltip\")}}}]).directive(\"tooltipTemplate\",[\"$tooltip\",function(a){return a(\"tooltipTemplate\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]).directive(\"tooltipHtmlPopup\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-html-popup.html\",link:function(c,d){b||a.warn(\"tooltip-html-popup is now deprecated. Use uib-tooltip-html-popup instead.\"),d.addClass(\"tooltip\")}}}]).directive(\"tooltipHtml\",[\"$tooltip\",function(a){return a(\"tooltipHtml\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]),angular.module(\"ui.bootstrap.popover\",[\"ui.bootstrap.tooltip\"]).directive(\"uibPopoverTemplatePopup\",function(){return{replace:!0,scope:{title:\"@\",contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/popover/popover-template.html\",link:function(a,b){b.addClass(\"popover\")}}}).directive(\"uibPopoverTemplate\",[\"$uibTooltip\",function(a){return a(\"uibPopoverTemplate\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"uibPopoverHtmlPopup\",function(){return{replace:!0,scope:{contentExp:\"&\",title:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover-html.html\",link:function(a,b){b.addClass(\"popover\")}}}).directive(\"uibPopoverHtml\",[\"$uibTooltip\",function(a){return a(\"uibPopoverHtml\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"uibPopoverPopup\",function(){return{replace:!0,scope:{title:\"@\",content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover.html\",link:function(a,b){b.addClass(\"popover\")}}}).directive(\"uibPopover\",[\"$uibTooltip\",function(a){return a(\"uibPopover\",\"popover\",\"click\")}]),angular.module(\"ui.bootstrap.popover\").value(\"$popoverSuppressWarning\",!1).directive(\"popoverTemplatePopup\",[\"$log\",\"$popoverSuppressWarning\",function(a,b){return{replace:!0,scope:{title:\"@\",contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/popover/popover-template.html\",link:function(c,d){b||a.warn(\"popover-template-popup is now deprecated. Use uib-popover-template-popup instead.\"),d.addClass(\"popover\")}}}]).directive(\"popoverTemplate\",[\"$tooltip\",function(a){return a(\"popoverTemplate\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"popoverHtmlPopup\",[\"$log\",\"$popoverSuppressWarning\",function(a,b){return{replace:!0,scope:{contentExp:\"&\",title:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover-html.html\",link:function(c,d){b||a.warn(\"popover-html-popup is now deprecated. Use uib-popover-html-popup instead.\"),d.addClass(\"popover\")}}}]).directive(\"popoverHtml\",[\"$tooltip\",function(a){return a(\"popoverHtml\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"popoverPopup\",[\"$log\",\"$popoverSuppressWarning\",function(a,b){return{replace:!0,scope:{title:\"@\",content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover.html\",link:function(c,d){b||a.warn(\"popover-popup is now deprecated. Use uib-popover-popup instead.\"),d.addClass(\"popover\")}}}]).directive(\"popover\",[\"$tooltip\",function(a){return a(\"popover\",\"popover\",\"click\")}]),angular.module(\"ui.bootstrap.progressbar\",[]).constant(\"uibProgressConfig\",{animate:!0,max:100}).controller(\"UibProgressController\",[\"$scope\",\"$attrs\",\"uibProgressConfig\",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,f){e||c.css({transition:\"none\"}),this.bars.push(b),b.max=a.max,b.title=f&&angular.isDefined(f.title)?f.title:\"progressbar\",b.$watch(\"value\",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){var a=d.bars.reduce(function(a,b){return b.percent=+(100*b.value/b.max).toFixed(2),a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on(\"$destroy\",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1),this.bars.forEach(function(a){a.recalculatePercentage()})},a.$watch(\"max\",function(b){d.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive(\"uibProgress\",function(){return{replace:!0,transclude:!0,controller:\"UibProgressController\",require:\"uibProgress\",scope:{max:\"=?\"},templateUrl:\"template/progressbar/progress.html\"}}).directive(\"uibBar\",function(){return{replace:!0,transclude:!0,require:\"^uibProgress\",scope:{value:\"=\",type:\"@\"},templateUrl:\"template/progressbar/bar.html\",link:function(a,b,c,d){d.addBar(a,b,c)}}}).directive(\"uibProgressbar\",function(){return{replace:!0,transclude:!0,controller:\"UibProgressController\",scope:{value:\"=\",max:\"=?\",type:\"@\"},templateUrl:\"template/progressbar/progressbar.html\",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]),{title:c.title})}}}),angular.module(\"ui.bootstrap.progressbar\").value(\"$progressSuppressWarning\",!1).controller(\"ProgressController\",[\"$scope\",\"$attrs\",\"uibProgressConfig\",\"$log\",\"$progressSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"ProgressController is now deprecated. Use UibProgressController instead.\");var f=this,g=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,d){g||c.css({transition:\"none\"}),this.bars.push(b),b.max=a.max,b.title=d&&angular.isDefined(d.title)?d.title:\"progressbar\",b.$watch(\"value\",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){b.percent=+(100*b.value/b.max).toFixed(2);var a=f.bars.reduce(function(a,b){return a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on(\"$destroy\",function(){c=null,f.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1)},a.$watch(\"max\",function(b){f.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive(\"progress\",[\"$log\",\"$progressSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,controller:\"ProgressController\",require:\"progress\",scope:{max:\"=?\",title:\"@?\"},templateUrl:\"template/progressbar/progress.html\",link:function(){b||a.warn(\"progress is now deprecated. Use uib-progress instead.\")}}}]).directive(\"bar\",[\"$log\",\"$progressSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,require:\"^progress\",scope:{value:\"=\",type:\"@\"},templateUrl:\"template/progressbar/bar.html\",link:function(c,d,e,f){b||a.warn(\"bar is now deprecated. Use uib-bar instead.\"),f.addBar(c,d)}}}]).directive(\"progressbar\",[\"$log\",\"$progressSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,controller:\"ProgressController\",scope:{value:\"=\",max:\"=?\",type:\"@\"},templateUrl:\"template/progressbar/progressbar.html\",link:function(c,d,e,f){b||a.warn(\"progressbar is now deprecated. Use uib-progressbar instead.\"),f.addBar(c,angular.element(d.children()[0]),{title:e.title})}}}]),angular.module(\"ui.bootstrap.rating\",[]).constant(\"uibRatingConfig\",{max:5,stateOn:null,stateOff:null,titles:[\"one\",\"two\",\"three\",\"four\",\"five\"]}).controller(\"UibRatingController\",[\"$scope\",\"$attrs\",\"uibRatingConfig\",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,d.$formatters.push(function(a){return angular.isNumber(a)&&a<<0!==a&&(a=Math.round(a)),a}),this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.titles)?a.$parent.$eval(b.titles):c.titles;this.titles=angular.isArray(f)&&f.length>0?f:c.titles;var g=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(g)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(b)},a[b]);return a},this.getTitle=function(a){return a>=this.titles.length?a+1:this.titles[a]},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(d.$viewValue===b?0:b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive(\"uibRating\",function(){return{require:[\"uibRating\",\"ngModel\"],scope:{readonly:\"=?\",onHover:\"&\",onLeave:\"&\"},controller:\"UibRatingController\",templateUrl:\"template/rating/rating.html\",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}),angular.module(\"ui.bootstrap.rating\").value(\"$ratingSuppressWarning\",!1).controller(\"RatingController\",[\"$scope\",\"$attrs\",\"$controller\",\"$log\",\"$ratingSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"RatingController is now deprecated. Use UibRatingController instead.\"),angular.extend(this,c(\"UibRatingController\",{$scope:a,$attrs:b}))}]).directive(\"rating\",[\"$log\",\"$ratingSuppressWarning\",function(a,b){return{require:[\"rating\",\"ngModel\"],scope:{readonly:\"=?\",onHover:\"&\",onLeave:\"&\"},controller:\"RatingController\",templateUrl:\"template/rating/rating.html\",replace:!0,link:function(c,d,e,f){b||a.warn(\"rating is now deprecated. Use uib-rating instead.\");var g=f[0],h=f[1];g.init(h)}}}]),angular.module(\"ui.bootstrap.tabs\",[]).controller(\"UibTabsetController\",[\"$scope\",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect(),a.selectCalled=!1)}),a.active=!0,a.selectCalled||(a.onSelect(),a.selectCalled=!0)},b.addTab=function(a){c.push(a),1===c.length&&a.active!==!1?a.active=!0:a.active?b.select(a):a.active=!1},b.removeTab=function(a){var e=c.indexOf(a);if(a.active&&c.length>1&&!d){var f=e==c.length-1?e-1:e+1;b.select(c[f])}c.splice(e,1)};var d;a.$on(\"$destroy\",function(){d=!0})}]).directive(\"uibTabset\",function(){return{restrict:\"EA\",transclude:!0,replace:!0,scope:{type:\"@\"},controller:\"UibTabsetController\",templateUrl:\"template/tabs/tabset.html\",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive(\"uibTab\",[\"$parse\",function(a){return{require:\"^uibTabset\",restrict:\"EA\",replace:!0,templateUrl:\"template/tabs/tab.html\",transclude:!0,scope:{active:\"=?\",heading:\"@\",onSelect:\"&select\",onDeselect:\"&deselect\"},controller:function(){},link:function(b,c,d,e,f){b.$watch(\"active\",function(a){a&&e.select(b)}),b.disabled=!1,d.disable&&b.$parent.$watch(a(d.disable),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},e.addTab(b),b.$on(\"$destroy\",function(){e.removeTab(b)}),b.$transcludeFn=f}}}]).directive(\"uibTabHeadingTransclude\",function(){return{restrict:\"A\",require:[\"?^uibTab\",\"?^tab\"],link:function(a,b){a.$watch(\"headingElement\",function(a){a&&(b.html(\"\"),b.append(a))})}}}).directive(\"uibTabContentTransclude\",function(){function a(a){return a.tagName&&(a.hasAttribute(\"tab-heading\")||a.hasAttribute(\"data-tab-heading\")||a.hasAttribute(\"x-tab-heading\")||a.hasAttribute(\"uib-tab-heading\")||a.hasAttribute(\"data-uib-tab-heading\")||a.hasAttribute(\"x-uib-tab-heading\")||\"tab-heading\"===a.tagName.toLowerCase()||\"data-tab-heading\"===a.tagName.toLowerCase()||\"x-tab-heading\"===a.tagName.toLowerCase()||\"uib-tab-heading\"===a.tagName.toLowerCase()||\"data-uib-tab-heading\"===a.tagName.toLowerCase()||\"x-uib-tab-heading\"===a.tagName.toLowerCase())}return{restrict:\"A\",require:[\"?^uibTabset\",\"?^tabset\"],link:function(b,c,d){var e=b.$eval(d.uibTabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module(\"ui.bootstrap.tabs\").value(\"$tabsSuppressWarning\",!1).controller(\"TabsetController\",[\"$scope\",\"$controller\",\"$log\",\"$tabsSuppressWarning\",function(a,b,c,d){d||c.warn(\"TabsetController is now deprecated. Use UibTabsetController instead.\"),angular.extend(this,b(\"UibTabsetController\",{$scope:a}))}]).directive(\"tabset\",[\"$log\",\"$tabsSuppressWarning\",function(a,b){return{restrict:\"EA\",transclude:!0,replace:!0,scope:{type:\"@\"},controller:\"TabsetController\",templateUrl:\"template/tabs/tabset.html\",link:function(c,d,e){b||a.warn(\"tabset is now deprecated. Use uib-tabset instead.\"),c.vertical=angular.isDefined(e.vertical)?c.$parent.$eval(e.vertical):!1,c.justified=angular.isDefined(e.justified)?c.$parent.$eval(e.justified):!1}}}]).directive(\"tab\",[\"$parse\",\"$log\",\"$tabsSuppressWarning\",function(a,b,c){return{require:\"^tabset\",restrict:\"EA\",replace:!0,templateUrl:\"template/tabs/tab.html\",transclude:!0,scope:{active:\"=?\",heading:\"@\",onSelect:\"&select\",onDeselect:\"&deselect\"},controller:function(){},link:function(d,e,f,g,h){c||b.warn(\"tab is now deprecated. Use uib-tab instead.\"),d.$watch(\"active\",function(a){a&&g.select(d)}),d.disabled=!1,f.disable&&d.$parent.$watch(a(f.disable),function(a){d.disabled=!!a}),d.select=function(){d.disabled||(d.active=!0)},g.addTab(d),d.$on(\"$destroy\",function(){g.removeTab(d)}),d.$transcludeFn=h}}}]).directive(\"tabHeadingTransclude\",[\"$log\",\"$tabsSuppressWarning\",function(a,b){return{restrict:\"A\",require:\"^tab\",link:function(c,d){b||a.warn(\"tab-heading-transclude is now deprecated. Use uib-tab-heading-transclude instead.\"),c.$watch(\"headingElement\",function(a){a&&(d.html(\"\"),d.append(a))})}}}]).directive(\"tabContentTransclude\",[\"$log\",\"$tabsSuppressWarning\",function(a,b){function c(a){return a.tagName&&(a.hasAttribute(\"tab-heading\")||a.hasAttribute(\"data-tab-heading\")||a.hasAttribute(\"x-tab-heading\")||\"tab-heading\"===a.tagName.toLowerCase()||\"data-tab-heading\"===a.tagName.toLowerCase()||\"x-tab-heading\"===a.tagName.toLowerCase())}return{restrict:\"A\",require:\"^tabset\",link:function(d,e,f){b||a.warn(\"tab-content-transclude is now deprecated. Use uib-tab-content-transclude instead.\");var g=d.$eval(f.tabContentTransclude);g.$transcludeFn(g.$parent,function(a){angular.forEach(a,function(a){c(a)?g.headingElement=a:e.append(a)})})}}}]),angular.module(\"ui.bootstrap.timepicker\",[]).constant(\"uibTimepickerConfig\",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0}).controller(\"UibTimepickerController\",[\"$scope\",\"$element\",\"$attrs\",\"$parse\",\"$log\",\"$locale\",\"uibTimepickerConfig\",function(a,b,c,d,e,f,g){function h(){var b=parseInt(a.hours,10),c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===r[1]&&(b+=12)),b):void 0}function i(){var b=parseInt(a.minutes,10);return b>=0&&60>b?b:void 0}function j(a){return angular.isDefined(a)&&a.toString().length<2?\"0\"+a:a.toString()}function k(a){l(),q.$setViewValue(new Date(p)),m(a)}function l(){q.$setValidity(\"time\",!0),a.invalidHours=!1,a.invalidMinutes=!1}function m(b){var c=p.getHours(),d=p.getMinutes();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours=\"h\"===b?c:j(c),\"m\"!==b&&(a.minutes=j(d)),a.meridian=p.getHours()<12?r[0]:r[1]}function n(a,b){var c=new Date(a.getTime()+6e4*b),d=new Date(a);return d.setHours(c.getHours(),c.getMinutes()),d}function o(a){p=n(p,a),k()}var p=new Date,q={$setViewValue:angular.noop},r=angular.isDefined(c.meridians)?a.$parent.$eval(c.meridians):g.meridians||f.DATETIME_FORMATS.AMPMS;a.tabindex=angular.isDefined(c.tabindex)?c.tabindex:0,b.removeAttr(\"tabindex\"),this.init=function(b,d){q=b,q.$render=this.render,q.$formatters.unshift(function(a){return a?new Date(a):null});var e=d.eq(0),f=d.eq(1),h=angular.isDefined(c.mousewheel)?a.$parent.$eval(c.mousewheel):g.mousewheel;h&&this.setupMousewheelEvents(e,f);var i=angular.isDefined(c.arrowkeys)?a.$parent.$eval(c.arrowkeys):g.arrowkeys;i&&this.setupArrowkeyEvents(e,f),a.readonlyInput=angular.isDefined(c.readonlyInput)?a.$parent.$eval(c.readonlyInput):g.readonlyInput,this.setupInputEvents(e,f)};var s=g.hourStep;c.hourStep&&a.$parent.$watch(d(c.hourStep),function(a){s=parseInt(a,10)});var t=g.minuteStep;c.minuteStep&&a.$parent.$watch(d(c.minuteStep),function(a){t=parseInt(a,10)});var u;a.$parent.$watch(d(c.min),function(a){var b=new Date(a);u=isNaN(b)?void 0:b});var v;a.$parent.$watch(d(c.max),function(a){var b=new Date(a);v=isNaN(b)?void 0:b}),a.noIncrementHours=function(){var a=n(p,60*s);\r\nreturn a>v||p>a&&u>a},a.noDecrementHours=function(){var a=n(p,60*-s);return u>a||a>p&&a>v},a.noIncrementMinutes=function(){var a=n(p,t);return a>v||p>a&&u>a},a.noDecrementMinutes=function(){var a=n(p,-t);return u>a||a>p&&a>v},a.noToggleMeridian=function(){return p.getHours()<13?n(p,720)>v:n(p,-720)0};b.bind(\"mousewheel wheel\",function(b){a.$apply(d(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind(\"mousewheel wheel\",function(b){a.$apply(d(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()})},this.setupArrowkeyEvents=function(b,c){b.bind(\"keydown\",function(b){38===b.which?(b.preventDefault(),a.incrementHours(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementHours(),a.$apply())}),c.bind(\"keydown\",function(b){38===b.which?(b.preventDefault(),a.incrementMinutes(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementMinutes(),a.$apply())})},this.setupInputEvents=function(b,c){if(a.readonlyInput)return a.updateHours=angular.noop,void(a.updateMinutes=angular.noop);var d=function(b,c){q.$setViewValue(null),q.$setValidity(\"time\",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c)};a.updateHours=function(){var a=h(),b=i();angular.isDefined(a)&&angular.isDefined(b)?(p.setHours(a),u>p||p>v?d(!0):k(\"h\")):d(!0)},b.bind(\"blur\",function(b){!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=j(a.hours)})}),a.updateMinutes=function(){var a=i(),b=h();angular.isDefined(a)&&angular.isDefined(b)?(p.setMinutes(a),u>p||p>v?d(void 0,!0):k(\"m\")):d(void 0,!0)},c.bind(\"blur\",function(b){!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=j(a.minutes)})})},this.render=function(){var b=q.$viewValue;isNaN(b)?(q.$setValidity(\"time\",!1),e.error('Timepicker directive: \"ng-model\" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(b&&(p=b),u>p||p>v?(q.$setValidity(\"time\",!1),a.invalidHours=!0,a.invalidMinutes=!0):l(),m())},a.showSpinners=angular.isDefined(c.showSpinners)?a.$parent.$eval(c.showSpinners):g.showSpinners,a.incrementHours=function(){a.noIncrementHours()||o(60*s)},a.decrementHours=function(){a.noDecrementHours()||o(60*-s)},a.incrementMinutes=function(){a.noIncrementMinutes()||o(t)},a.decrementMinutes=function(){a.noDecrementMinutes()||o(-t)},a.toggleMeridian=function(){a.noToggleMeridian()||o(720*(p.getHours()<12?1:-1))}}]).directive(\"uibTimepicker\",function(){return{restrict:\"EA\",require:[\"uibTimepicker\",\"?^ngModel\"],controller:\"UibTimepickerController\",controllerAs:\"timepicker\",replace:!0,scope:{},templateUrl:function(a,b){return b.templateUrl||\"template/timepicker/timepicker.html\"},link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find(\"input\"))}}}),angular.module(\"ui.bootstrap.timepicker\").value(\"$timepickerSuppressWarning\",!1).controller(\"TimepickerController\",[\"$scope\",\"$element\",\"$attrs\",\"$controller\",\"$log\",\"$timepickerSuppressWarning\",function(a,b,c,d,e,f){f||e.warn(\"TimepickerController is now deprecated. Use UibTimepickerController instead.\"),angular.extend(this,d(\"UibTimepickerController\",{$scope:a,$element:b,$attrs:c}))}]).directive(\"timepicker\",[\"$log\",\"$timepickerSuppressWarning\",function(a,b){return{restrict:\"EA\",require:[\"timepicker\",\"?^ngModel\"],controller:\"TimepickerController\",controllerAs:\"timepicker\",replace:!0,scope:{},templateUrl:function(a,b){return b.templateUrl||\"template/timepicker/timepicker.html\"},link:function(c,d,e,f){b||a.warn(\"timepicker is now deprecated. Use uib-timepicker instead.\");var g=f[0],h=f[1];h&&g.init(h,d.find(\"input\"))}}}]),angular.module(\"ui.bootstrap.typeahead\",[\"ui.bootstrap.position\"]).factory(\"uibTypeaheadParser\",[\"$parse\",function(a){var b=/^\\s*([\\s\\S]+?)(?:\\s+as\\s+([\\s\\S]+?))?\\s+for\\s+(?:([\\$\\w][\\$\\w\\d]*))\\s+in\\s+([\\s\\S]+?)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of \"_modelValue_ (as _label_)? for _item_ in _collection_\" but got \"'+c+'\".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).controller(\"UibTypeaheadController\",[\"$scope\",\"$element\",\"$attrs\",\"$compile\",\"$parse\",\"$q\",\"$timeout\",\"$document\",\"$window\",\"$rootScope\",\"$uibPosition\",\"uibTypeaheadParser\",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(){K.moveInProgress||(K.moveInProgress=!0,K.$digest()),S&&g.cancel(S),S=g(function(){K.matches.length&&n(),K.moveInProgress=!1},r)}function n(){K.position=C?k.offset(b):k.position(b),K.position.top+=b.prop(\"offsetHeight\")}var o,p,q=[9,13,27,38,40],r=200,s=a.$eval(c.typeaheadMinLength);s||0===s||(s=1);var t,u,v=a.$eval(c.typeaheadWaitMs)||0,w=a.$eval(c.typeaheadEditable)!==!1,x=e(c.typeaheadLoading).assign||angular.noop,y=e(c.typeaheadOnSelect),z=angular.isDefined(c.typeaheadSelectOnBlur)?a.$eval(c.typeaheadSelectOnBlur):!1,A=e(c.typeaheadNoResults).assign||angular.noop,B=c.typeaheadInputFormatter?e(c.typeaheadInputFormatter):void 0,C=c.typeaheadAppendToBody?a.$eval(c.typeaheadAppendToBody):!1,D=c.typeaheadAppendToElementId||!1,E=a.$eval(c.typeaheadFocusFirst)!==!1,F=c.typeaheadSelectOnExact?a.$eval(c.typeaheadSelectOnExact):!1,G=e(c.ngModel),H=e(c.ngModel+\"($$$p)\"),I=function(b,c){return angular.isFunction(G(a))&&p&&p.$options&&p.$options.getterSetter?H(b,{$$$p:c}):G.assign(b,c)},J=l.parse(c.uibTypeahead),K=a.$new(),L=a.$on(\"$destroy\",function(){K.$destroy()});K.$on(\"$destroy\",L);var M=\"typeahead-\"+K.$id+\"-\"+Math.floor(1e4*Math.random());b.attr({\"aria-autocomplete\":\"list\",\"aria-expanded\":!1,\"aria-owns\":M});var N=angular.element(\"
      \");N.attr({id:M,matches:\"matches\",active:\"activeIdx\",select:\"select(activeIdx)\",\"move-in-progress\":\"moveInProgress\",query:\"query\",position:\"position\"}),angular.isDefined(c.typeaheadTemplateUrl)&&N.attr(\"template-url\",c.typeaheadTemplateUrl),angular.isDefined(c.typeaheadPopupTemplateUrl)&&N.attr(\"popup-template-url\",c.typeaheadPopupTemplateUrl);var O=function(){K.matches=[],K.activeIdx=-1,b.attr(\"aria-expanded\",!1)},P=function(a){return M+\"-option-\"+a};K.$watch(\"activeIdx\",function(a){0>a?b.removeAttr(\"aria-activedescendant\"):b.attr(\"aria-activedescendant\",P(a))});var Q=function(a,b){return K.matches.length>b&&a?a.toUpperCase()===K.matches[b].label.toUpperCase():!1},R=function(c){var d={$viewValue:c};x(a,!0),A(a,!1),f.when(J.source(a,d)).then(function(e){var f=c===o.$viewValue;if(f&&t)if(e&&e.length>0){K.activeIdx=E?0:-1,A(a,!1),K.matches.length=0;for(var g=0;g0?K.activeIdx:K.matches.length)-1,K.$digest()):13===a.which||9===a.which?K.$apply(function(){K.select(K.activeIdx)}):27===a.which&&(a.stopPropagation(),O(),K.$digest())}}),b.bind(\"blur\",function(){z&&K.matches.length&&-1!==K.activeIdx&&!u&&(u=!0,K.$apply(function(){K.select(K.activeIdx)})),t=!1,u=!1});var W=function(a){b[0]!==a.target&&3!==a.which&&0!==K.matches.length&&(O(),j.$$phase||K.$digest())};h.bind(\"click\",W),a.$on(\"$destroy\",function(){h.unbind(\"click\",W),(C||D)&&X.remove(),C&&(angular.element(i).unbind(\"resize\",m),h.find(\"body\").unbind(\"scroll\",m)),N.remove()});var X=d(N)(K);C?h.find(\"body\").append(X):D!==!1?angular.element(h[0].getElementById(D)).append(X):b.after(X),this.init=function(b,c){o=b,p=c,o.$parsers.unshift(function(b){return t=!0,0===s||b&&b.length>=s?v>0?(V(),U(b)):R(b):(x(a,!1),V(),O()),w?b:b?void o.$setValidity(\"editable\",!1):(o.$setValidity(\"editable\",!0),null)}),o.$formatters.push(function(b){var c,d,e={};return w||o.$setValidity(\"editable\",!0),B?(e.$model=b,B(a,e)):(e[J.itemName]=b,c=J.viewMapper(a,e),e[J.itemName]=void 0,d=J.viewMapper(a,e),c!==d?c:b)})}}]).directive(\"uibTypeahead\",function(){return{controller:\"UibTypeaheadController\",require:[\"ngModel\",\"^?ngModelOptions\",\"uibTypeahead\"],link:function(a,b,c,d){d[2].init(d[0],d[1])}}}).directive(\"uibTypeaheadPopup\",function(){return{scope:{matches:\"=\",query:\"=\",active:\"=\",position:\"&\",moveInProgress:\"=\",select:\"&\"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||\"template/typeahead/typeahead-popup.html\"},link:function(a,b,c){a.templateUrl=c.templateUrl,a.isOpen=function(){return a.matches.length>0},a.isActive=function(b){return a.active==b},a.selectActive=function(b){a.active=b},a.selectMatch=function(b){a.select({activeIdx:b})}}}}).directive(\"uibTypeaheadMatch\",[\"$templateRequest\",\"$compile\",\"$parse\",function(a,b,c){return{scope:{index:\"=\",match:\"=\",query:\"=\"},link:function(d,e,f){var g=c(f.templateUrl)(d.$parent)||\"template/typeahead/typeahead-match.html\";a(g).then(function(a){b(a.trim())(d,function(a){e.replaceWith(a)})})}}}]).filter(\"uibTypeaheadHighlight\",[\"$sce\",\"$injector\",\"$log\",function(a,b,c){function d(a){return a.replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\")}function e(a){return/<.*>/g.test(a)}var f;return f=b.has(\"$sanitize\"),function(b,g){return!f&&e(b)&&c.warn(\"Unsafe use of typeahead please use ngSanitize\"),b=g?(\"\"+b).replace(new RegExp(d(g),\"gi\"),\"$&\"):b,f||(b=a.trustAsHtml(b)),b}}]),angular.module(\"ui.bootstrap.typeahead\").value(\"$typeaheadSuppressWarning\",!1).service(\"typeaheadParser\",[\"$parse\",\"uibTypeaheadParser\",\"$log\",\"$typeaheadSuppressWarning\",function(a,b,c,d){return d||c.warn(\"typeaheadParser is now deprecated. Use uibTypeaheadParser instead.\"),b}]).directive(\"typeahead\",[\"$compile\",\"$parse\",\"$q\",\"$timeout\",\"$document\",\"$window\",\"$rootScope\",\"$uibPosition\",\"typeaheadParser\",\"$log\",\"$typeaheadSuppressWarning\",function(a,b,c,d,e,f,g,h,i,j,k){var l=[9,13,27,38,40],m=200;return{require:[\"ngModel\",\"^?ngModelOptions\"],link:function(n,o,p,q){function r(){N.moveInProgress||(N.moveInProgress=!0,N.$digest()),V&&d.cancel(V),V=d(function(){N.matches.length&&s(),N.moveInProgress=!1},m)}function s(){N.position=F?h.offset(o):h.position(o),N.position.top+=o.prop(\"offsetHeight\")}k||j.warn(\"typeahead is now deprecated. Use uib-typeahead instead.\");var t=q[0],u=q[1],v=n.$eval(p.typeaheadMinLength);v||0===v||(v=1);var w,x,y=n.$eval(p.typeaheadWaitMs)||0,z=n.$eval(p.typeaheadEditable)!==!1,A=b(p.typeaheadLoading).assign||angular.noop,B=b(p.typeaheadOnSelect),C=angular.isDefined(p.typeaheadSelectOnBlur)?n.$eval(p.typeaheadSelectOnBlur):!1,D=b(p.typeaheadNoResults).assign||angular.noop,E=p.typeaheadInputFormatter?b(p.typeaheadInputFormatter):void 0,F=p.typeaheadAppendToBody?n.$eval(p.typeaheadAppendToBody):!1,G=p.typeaheadAppendToElementId||!1,H=n.$eval(p.typeaheadFocusFirst)!==!1,I=p.typeaheadSelectOnExact?n.$eval(p.typeaheadSelectOnExact):!1,J=b(p.ngModel),K=b(p.ngModel+\"($$$p)\"),L=function(a,b){return angular.isFunction(J(n))&&u&&u.$options&&u.$options.getterSetter?K(a,{$$$p:b}):J.assign(a,b)},M=i.parse(p.typeahead),N=n.$new(),O=n.$on(\"$destroy\",function(){N.$destroy()});N.$on(\"$destroy\",O);var P=\"typeahead-\"+N.$id+\"-\"+Math.floor(1e4*Math.random());o.attr({\"aria-autocomplete\":\"list\",\"aria-expanded\":!1,\"aria-owns\":P});var Q=angular.element(\"
      \");Q.attr({id:P,matches:\"matches\",active:\"activeIdx\",select:\"select(activeIdx)\",\"move-in-progress\":\"moveInProgress\",query:\"query\",position:\"position\"}),angular.isDefined(p.typeaheadTemplateUrl)&&Q.attr(\"template-url\",p.typeaheadTemplateUrl),angular.isDefined(p.typeaheadPopupTemplateUrl)&&Q.attr(\"popup-template-url\",p.typeaheadPopupTemplateUrl);var R=function(){N.matches=[],N.activeIdx=-1,o.attr(\"aria-expanded\",!1)},S=function(a){return P+\"-option-\"+a};N.$watch(\"activeIdx\",function(a){0>a?o.removeAttr(\"aria-activedescendant\"):o.attr(\"aria-activedescendant\",S(a))});var T=function(a,b){return N.matches.length>b&&a?a.toUpperCase()===N.matches[b].label.toUpperCase():!1},U=function(a){var b={$viewValue:a};A(n,!0),D(n,!1),c.when(M.source(n,b)).then(function(c){var d=a===t.$viewValue;if(d&&w)if(c&&c.length>0){N.activeIdx=H?0:-1,D(n,!1),N.matches.length=0;for(var e=0;e=v?y>0?(Y(),X(a)):U(a):(A(n,!1),Y(),R()),z?a:a?void t.$setValidity(\"editable\",!1):(t.$setValidity(\"editable\",!0),null)}),t.$formatters.push(function(a){var b,c,d={};return z||t.$setValidity(\"editable\",!0),E?(d.$model=a,E(n,d)):(d[M.itemName]=a,b=M.viewMapper(n,d),d[M.itemName]=void 0,c=M.viewMapper(n,d),b!==c?b:a)}),N.select=function(a){var b,c,e={};x=!0,e[M.itemName]=c=N.matches[a].model,b=M.modelMapper(n,e),L(n,b),t.$setValidity(\"editable\",!0),t.$setValidity(\"parse\",!0),B(n,{$item:c,$model:b,$label:M.viewMapper(n,e)}),R(),N.$eval(p.typeaheadFocusOnSelect)!==!1&&d(function(){o[0].focus()},0,!1)},o.bind(\"keydown\",function(a){if(0!==N.matches.length&&-1!==l.indexOf(a.which)){if(-1===N.activeIdx&&(9===a.which||13===a.which))return R(),void N.$digest();a.preventDefault(),40===a.which?(N.activeIdx=(N.activeIdx+1)%N.matches.length,N.$digest()):38===a.which?(N.activeIdx=(N.activeIdx>0?N.activeIdx:N.matches.length)-1,N.$digest()):13===a.which||9===a.which?N.$apply(function(){N.select(N.activeIdx)}):27===a.which&&(a.stopPropagation(),R(),N.$digest())}}),o.bind(\"blur\",function(){C&&N.matches.length&&-1!==N.activeIdx&&!x&&(x=!0,N.$apply(function(){N.select(N.activeIdx)})),w=!1,x=!1});var Z=function(a){o[0]!==a.target&&3!==a.which&&0!==N.matches.length&&(R(),g.$$phase||N.$digest())};e.bind(\"click\",Z),n.$on(\"$destroy\",function(){e.unbind(\"click\",Z),(F||G)&&$.remove(),F&&(angular.element(f).unbind(\"resize\",r),e.find(\"body\").unbind(\"scroll\",r)),Q.remove()});var $=a(Q)(N);F?e.find(\"body\").append($):G!==!1?angular.element(e[0].getElementById(G)).append($):o.after($)}}}]).directive(\"typeaheadPopup\",[\"$typeaheadSuppressWarning\",\"$log\",function(a,b){return{scope:{matches:\"=\",query:\"=\",active:\"=\",position:\"&\",moveInProgress:\"=\",select:\"&\"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||\"template/typeahead/typeahead-popup.html\"},link:function(c,d,e){a||b.warn(\"typeahead-popup is now deprecated. Use uib-typeahead-popup instead.\"),c.templateUrl=e.templateUrl,c.isOpen=function(){return c.matches.length>0},c.isActive=function(a){return c.active==a},c.selectActive=function(a){c.active=a},c.selectMatch=function(a){c.select({activeIdx:a})}}}}]).directive(\"typeaheadMatch\",[\"$templateRequest\",\"$compile\",\"$parse\",\"$typeaheadSuppressWarning\",\"$log\",function(a,b,c,d,e){return{restrict:\"EA\",scope:{index:\"=\",match:\"=\",query:\"=\"},link:function(f,g,h){d||e.warn(\"typeahead-match is now deprecated. Use uib-typeahead-match instead.\");var i=c(h.templateUrl)(f.$parent)||\"template/typeahead/typeahead-match.html\";a(i).then(function(a){b(a.trim())(f,function(a){g.replaceWith(a)})})}}}]).filter(\"typeaheadHighlight\",[\"$sce\",\"$injector\",\"$log\",\"$typeaheadSuppressWarning\",function(a,b,c,d){function e(a){return a.replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\")}function f(a){return/<.*>/g.test(a)}var g;return g=b.has(\"$sanitize\"),function(b,h){return d||c.warn(\"typeaheadHighlight is now deprecated. Use uibTypeaheadHighlight instead.\"),!g&&f(b)&&c.warn(\"Unsafe use of typeahead please use ngSanitize\"),b=h?(\"\"+b).replace(new RegExp(e(h),\"gi\"),\"$&\"):b,g||(b=a.trustAsHtml(b)),b}}]),angular.module(\"template/accordion/accordion-group.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/accordion/accordion-group.html\",'
      \\n
      \\n

      \\n {{heading}}\\n

      \\n
      \\n
      \\n\t
      \\n
      \\n
      \\n')}]),angular.module(\"template/accordion/accordion.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/accordion/accordion.html\",'
      ')}]),angular.module(\"template/alert/alert.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/alert/alert.html\",'
      \\n \\n
      \\n
      \\n')}]),angular.module(\"template/carousel/carousel.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/carousel/carousel.html\",'
      \\n
      \\n 1\">\\n \\n previous\\n \\n 1\">\\n \\n next\\n \\n
        1\">\\n
      1. \\n slide {{ $index + 1 }} of {{ slides.length }}, currently active\\n
      2. \\n
      \\n
      ')}]),angular.module(\"template/carousel/slide.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/carousel/slide.html\",'
      \\n')}]),angular.module(\"template/datepicker/datepicker.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/datepicker.html\",'
      \\n \\n \\n \\n
      ')}]),angular.module(\"template/datepicker/day.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/day.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
      {{::label.abbr}}
      {{ weekNumbers[$index] }}\\n \\n
      \\n')}]),angular.module(\"template/datepicker/month.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/month.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
      \\n \\n
      \\n')}]),angular.module(\"template/datepicker/popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/popup.html\",'
        \\n\t
      • \\n\t
      • \\n\t\t\\n\t\t\t\\n\t\t\t\\n\t\t\\n\t\t\\n\t
      • \\n
      \\n')}]),angular.module(\"template/datepicker/year.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/year.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
      \\n \\n
      \\n')}]),angular.module(\"template/modal/backdrop.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/modal/backdrop.html\",'
      \\n')}]),angular.module(\"template/modal/window.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/modal/window.html\",'
      \\n
      \\n
      \\n')}]),angular.module(\"template/pagination/pager.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/pagination/pager.html\",'\\n')}]),angular.module(\"template/pagination/pagination.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/pagination/pagination.html\",'\\n')}]),angular.module(\"template/tooltip/tooltip-html-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tooltip/tooltip-html-popup.html\",'\\n
      \\n
      \\n\\n')}]),angular.module(\"template/tooltip/tooltip-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tooltip/tooltip-popup.html\",'\\n
      \\n
      \\n\\n')}]),angular.module(\"template/tooltip/tooltip-template-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tooltip/tooltip-template-popup.html\",'\\n
      \\n
      \\n\\n')}]),angular.module(\"template/popover/popover-html.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/popover/popover-html.html\",'
      \\n
      \\n\\n
      \\n

      \\n
      \\n
      \\n
      \\n')}]),angular.module(\"template/popover/popover-template.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/popover/popover-template.html\",'
      \\n
      \\n\\n
      \\n

      \\n
      \\n
      \\n
      \\n')}]),angular.module(\"template/popover/popover.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/popover/popover.html\",'
      \\n
      \\n\\n
      \\n

      \\n
      \\n
      \\n
      \\n')}]),angular.module(\"template/progressbar/bar.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/progressbar/bar.html\",'
      \\n')}]),angular.module(\"template/progressbar/progress.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/progressbar/progress.html\",'
      ')}]),angular.module(\"template/progressbar/progressbar.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/progressbar/progressbar.html\",'
      \\n
      \\n
      \\n')}]),angular.module(\"template/rating/rating.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/rating/rating.html\",'\\n ({{ $index < value ? \\'*\\' : \\' \\' }})\\n \\n\\n');\r\n}]),angular.module(\"template/tabs/tab.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tabs/tab.html\",'
    • \\n {{heading}}\\n
    • \\n')}]),angular.module(\"template/tabs/tabset.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tabs/tabset.html\",'
      \\n
        \\n
        \\n
        \\n
        \\n
        \\n
        \\n')}]),angular.module(\"template/timepicker/timepicker.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/timepicker/timepicker.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
         
        \\n \\n :\\n \\n
         
        \\n')}]),angular.module(\"template/typeahead/typeahead-match.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/typeahead/typeahead-match.html\",'\\n')}]),angular.module(\"template/typeahead/typeahead-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/typeahead/typeahead-popup.html\",'
          \\n
        • \\n
          \\n
        • \\n
        \\n')}]),!angular.$$csp()&&angular.element(document).find(\"head\").prepend('');","SUGApp.service(\"facebookService\",[\"$q\",\"SUGUtilities\",\"$window\",function(e,n,t){var o={fbConnected:!1,fbLoading:!1},a=function(e){o.fbConnected=!!e},s=function(e){o.fbLoading=!!e};a(!1),s(!0),o.initFB=function(e){FB.init({appId:e,status:!0,cookie:!0,xfbml:!0,version:\"v7.0\"})};var i,c,r,d,u,f=function(){s(!1),FB.Event.subscribe(\"auth.statusChange\",function(e){\"connected\"===e.status?a(!0):a(!1)}),n.APISyncCall(\"post\",\"\",\"\",\"c.getsmappid\",15e3).then(function(e){var t=n.lowerCaseKeys(e);angular.isDefined(t.data)&&angular.isDefined(t.data.data)&&\"\"!==t.data.data&&o.initFB(t.data.data)})};window.FB?f():(window.fbAsyncInit=function(){f()},i=document,c=\"script\",r=\"facebook-jssdk\",u=i.getElementsByTagName(c)[0],i.getElementById(r)||((d=i.createElement(c)).id=r,d.src=\"https://connect.facebook.net/en_US/sdk.js\",u.parentNode.insertBefore(d,u))),o.getFBUserInfo=function(e){var t=n.lowerCaseKeys(e),o={atId:t.accesstoken,uidId:t.userid,sigId:t.signedrequest};return n.APISyncCall(\"post\",\"\",o,\"c.getSocialMediaUser\",15e3)};var l=function(e,t){var o=n.lowerCaseKeys(e);return o.status&&\"connected\"==o.status&&o.authresponse&&o.authresponse.accesstoken&&o.authresponse.accesstoken.length?(a(!0),t.resolve(o)):(s(!1),a(!1),t.reject(\"Error occured\")),t};return o.fbLogin=function(){var n=e.defer();return window.FB?(s(!0),o.fbConnected?FB.getLoginStatus(function(e){n=l(e,n)},!0):FB.login(function(e){n=l(e,n)},{scope:\"public_profile,email\"})):n.reject(\"Facebook SDK is still loading\"),n.promise},o}]);","(function(){\r\n\r\n\tSUGApp.service('commonRegExService', ['SUGUtilities', function (SUGUtilities) {\r\n\r\n\t\tvar factory = {};\r\n\r\n\t\tfactory.addressRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9].*$\", \"i\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.bankAccountNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{3,17}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.bankRoutingNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{9}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caGSTHSTNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{9}\\s?[A-Z]{2}\\s?[0-9]{4}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caGSTHSTNumberLowerCaseRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{9}\\s?[a-z]{2}\\s?[0-9]{4}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caBankAccountNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{5,12}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caBankTransitRegEx = function() {\r\n\t\t\tvar pattern = /^[0-9]{5}$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caInstitutionNumberRegEx = function() {\r\n\t\t\tvar pattern = /^[0-9]{3}$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caPostalCodeRegEx = function() {\r\n\t\t\tvar pattern = /^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1}\\s*\\d{1}[A-Z]{1}\\d{1}$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caSinRegEx = function() {\r\n\t\t\tvar pattern = /^(\\d{3})[\\-\\s]?(\\d{3})[\\-\\s]?(\\d{3})$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\tfactory.cityRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[a-zA-Z\\- ]+$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.einRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"[0-9]{9}\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.emailRegEx = function() {\r\n\t\t\tvar pattern = /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.noSpecialCharsForFileRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[a-zA-Z0-9\\- \\_]+$\");\t//= /^[a-zA-Z0-9\\ \\_\\-]*$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\tfactory.phoneRegEx = function() {\r\n\t\t\tvar pattern = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.poboxRegEx = function() {\r\n\t\t\tvar pattern = /^ *((#\\d+)|((box|bin)[-. \\/\\\\]?\\d+)|(.*p[ \\.]? ?(o|0)[-. \\/\\\\]? *-?((box|bin)|b|(#|num)?\\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\\d+)|(p *-?\\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\\d+|(num|number|#) *\\d+)/i;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.ssnFullRegEx = function() {\r\n\t\t\tvar pattern = new RegExp(\"^(?!\\b(\\d)\\1+\\b)(?!123456789|219099999|078051120)(?!666|000|9\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.ssnLast4RegEx = function() {\r\n\t\t\tvar pattern = new RegExp(\"[0-9]{4}\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.uriRegEx = function() {\r\n\t\t\tvar pattern = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.zipcodeRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{5}(?:-[0-9]{4})?$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Validates a Canadian Postal Code using the following rules:\r\n\t\t * A Canadian postal code is a six-character string in the format A1A 1A1, where A is a letter and 1 is a digit\r\n\t\t * A space separates the third and fourth characters\r\n\t\t * Postal codes do not include the letters D, F, I, O, Q or U\r\n\t\t * The first position also does not make use of the letters W or Z\r\n\t\t * src: https://howtodoinjava.com/regex/java-regex-validate-canadian-postal-zip-codes/\r\n\t\t */\r\n\t\tfactory.canadianPostalCodeRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] ?[0-9][A-Z][0-9]$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Validates a US Zip Code OR a Canadian Postal Code using the individual validation functions\r\n\t\t */\r\n\t\tfactory.validateZipOrPostalCode = function( code ) {\r\n\t\t\tif( typeof code == 'undefined' ){ code=0; }\r\n\t\t\tvar returnVar = false;\r\n\r\n\t\t\tif (/^\\d/.test(code)){\r\n\t\t\t\treturnVar = factory.zipcodeRegEx().test(code);\r\n\t\t\t} else {\r\n\t\t\t\treturnVar = factory.canadianPostalCodeRegEx().test(code);\r\n\t\t\t}\r\n\r\n\t\t\treturn returnVar;\r\n\t\t};\r\n\r\n\t\treturn factory;\r\n\t}]);\r\n\r\n}()); //self invoked function to keep variables/modules out of the global scope\r\n","/**\r\n * used for customized file upload input fields\r\n **/\r\nSUGApp.directive('passwordStrength', function(){\r\n\treturn {\r\n\t\ttemplateUrl: '/js/directives/passwordStrength.html',\r\n\t\trestrict: 'EA',\r\n\t\tscope: {\r\n\t\t\tpassword: '@',\r\n\t\t\tpassword2: '@',\r\n\t\t\tstyleoverride: '@'\r\n\t\t},\r\n\t\tcontroller: ['$scope','SUGUtilities', function($scope,SUGUtilities) {\r\n\t\t\tdata = '';\r\n\t\t\t$scope.useglyph = 'remove';\r\n\t\t\tSUGUtilities.APISyncCall( \"post\", \"\", data, \"c.getPasswordComplexity\", 15000 )\r\n\t\t\t\t.then(function(r){\r\n\t\t\t\t\tvar response = SUGUtilities.lowerCaseKeys(r.data);\r\n\t\t\t\t\tif(!response.success) {\r\n\t\t\t\t\t\t$scope.displayError(response.data.accountdetails.error,response.data.accountdetails.error_description,response.data.accountdetails.error_code);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$scope.passwordComplexity = response.data;\r\n\t\t\t\t\t\t$scope.passwordValid = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\tfunction allTrue(obj){\r\n\t\t\t\tfor(var o in obj)\r\n\t\t\t\tif(!obj[o]) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\r\n\t\t\t$scope.checkStrength = function(pass, pass2) {\r\n\t\t\t\tvar passwordLenValue = pass ? $scope.password.length : 0;\r\n\r\n\t\t\t\tfor (var ruletype in $scope.passwordComplexity){\r\n\t\t\t\t\tfor (var rule in $scope.passwordComplexity[ruletype]) {\r\n\t\t\t\t\t\t$scope.passwordValid[rule] = false;\r\n\t\t\t\t\t\tif ($scope.passwordComplexity[ruletype][rule].enabled) {\r\n\t\t\t\t\t\t\tswitch (rule) {\r\n\t\t\t\t\t\t\t\tcase \"minimum\":\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = passwordLenValue >= $scope.passwordComplexity[ruletype][rule].minvalue ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"maximum\":\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = passwordLenValue <= $scope.passwordComplexity[ruletype][rule].maxvalue ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"lower\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"upper\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"number\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"specialchar\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (!allTrue($scope.passwordValid) || pass !== pass2) {\r\n\t\t\t\t\treturn 'weak';\r\n\t\t\t\t} else if (allTrue($scope.passwordValid) && passwordLenValue < 10) {\r\n\t\t\t\t\treturn 'medium';\r\n\t\t\t\t} else if (allTrue($scope.passwordValid) && passwordLenValue >= 10) {\r\n\t\t\t\t\treturn 'strong';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}],\r\n\t\tlink: function($scope, element, attrs) {\r\n\t\t\t$scope.$watch( 'password', function() { \r\n\t\t\t\t$scope.strengthValue = $scope.password ? $scope.checkStrength($scope.password, $scope.password2) : '';\r\n\t\t\t\tswitch ($scope.strengthValue) {\r\n\t\t\t\t\tcase 'weak':\r\n\t\t\t\t\t\t$scope.useglyph = 'remove';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t$scope.useglyph = 'ok';\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n});\r\n","(function () {\r\n\r\n /** sign up form service **/\r\n SUGApp.service('authenticationService', ['SUGUtilities', function(util){\r\n\r\n var service = {};\r\n\r\n service.logoutUser = function(){\r\n return util.APISyncCall( \"post\", \"\", \"\", \"c.logoutUser\", 15000 );\r\n };\r\n\r\n service.forgotPassword = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.forgotPassword\", 15000 );\r\n };\r\n\r\n service.loginUser = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.loginUser\", 20000 );\r\n };\r\n\r\n service.createMember = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.createMember\", 15000 );\r\n };\r\n\r\n service.verifyDisabledAccount = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.verifyDisabledAccount\", 15000 );\r\n };\r\n\r\n service.getsmappid = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.getsmappid\", 15000 );\r\n };\r\n\r\n service.getMainNavigation = function(data){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.getMainNavigation\", 15000 );\r\n };\r\n\r\n service.passwordRulesText = function(){\r\n return util.APISyncCall( \"post\", \"\", \"\", \"c.passwordRulesText\", 15000 );\r\n };\r\n\r\n service.validatePasswordRules = function(data){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.validatePasswordRules\", 15000 );\r\n };\r\n\r\n\t\tservice.getLoginRateLimit = function(data){\r\n\t\t\treturn util.APISyncCall( \"post\", \"\", data, \"c.getLoginRateLimit\", 15000 );\r\n\t\t};\r\n\r\n\t\tservice.changePassword = function(data){\r\n\t\t\treturn util.APISyncCall( \"post\", \"\", data, \"c.changePassword\", 15000 );\r\n\t\t};\r\n\r\n service.resultErrorHandler = function( response ){\r\n \t\tvar Message = \"\";\r\n \t\tvar result = util.lowerCaseKeys(response);\r\n \t\tif( angular.isDefined(result.message) ){\r\n \t\t\tif( angular.isArray(result.message) ){\r\n angular.forEach( result.message, function(obj,key){\r\n Message += obj + \" \";\r\n });\r\n \t\t\t} else {\r\n \t\t\t\tMessage = result.message;\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tif( util.isDefinedNotNullNotEmpty(result.statustext) ){\r\n \t\t\t\tMessage = result.statustext;\r\n \t\t\t} else if( typeof result.status !== undefined && result.status === 0 ){\r\n \t\t\t\tMessage = 'Request timeout exceeded. Make sure you are logged in and have an active session.';\r\n \t\t\t}\r\n \t\t\telse {\r\n \t\t\t\tMessage = 'An unknown error occurred while processing your request';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn Message;\r\n \t};\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n})();\r\n","/** controller for login.html **/\r\n(function () {\r\n\r\n SUGApp.controller('authenticationController',\r\n ['$scope','$uibModalInstance','authenticationService','SUGUtilities','facebookService','$location','loginRequired','loginMessage','register','registerDisabled','$sce','$timeout','commonRegExService', '$window',\r\n function( l, m, svc, util, fbSvc, $location, loginRequired, loginMessage, register, registerDisabled, sce, $timeout, commonRegExService, $window ){\r\n\r\n l.processing = false;\r\n l.complete = false;\r\n l.message = '';\r\n l.register = false;\r\n l.registerDisabled = ( angular.isDefined(registerDisabled) && registerDisabled ) ? true : false;\r\n l.frm = {};\r\n l.frm.loginemail = '';\r\n l.frm.newemail = '';\r\n l.frm.pword = '';\r\n l.frm.remember = false;\r\n l.frm.firstname = '';\r\n l.frm.lastname = '';\r\n l.frm.companyname = '';\r\n l.frm.show = 'login';\r\n l.frm.verifytype = 'existing';\r\n l.errorMessages = {};\r\n l.hasErrors = false;\r\n l.btnLabel = 'Login';\r\n l.mainLabel = \"SignUpGenius Login\";\r\n l.blacklistedAddress = '';\r\n l.fbAuth = false;\r\n l.fbBtnLabel = 'Login with Facebook';\r\n l.sugAccountRequired = loginRequired;\r\n l.loginMessage = loginMessage;\r\n l.captcha = '';\r\n l.captchaValid = false;\r\n l.showrecaptcha = false;\r\n l.failedlogins = 0;\r\n\t\tl.passwordmustbechanged = false;\r\n\t\tl.passwordRules = [];\r\n l.hideForgotPassword = false;\r\n\r\n\t\tutil.getReCaptcha({})\r\n\t\t\t.then( function(response){\r\n\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t// captcha fail\r\n\t\t\t\t} else {\r\n\t\t\t\t\tl.captcha = sce.trustAsHtml( r.data.data.snippet );\r\n\t\t\t\t\tl.recaptchafeature = r.data.data.feature;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tsvc.getLoginRateLimit({})\r\n\t\t\t.then( function(response){\r\n\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t// fail\r\n\t\t\t\t} else {\r\n\t\t\t\t\tl.ratelimit = r.data.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tsvc.passwordRulesText({})\r\n\t\t\t.then( function(response){\r\n\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t// fail\r\n\t\t\t\t} else {\r\n\t\t\t\t\tl.passwordRules = r.data.message;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n /** method for switching between forms **/\r\n l.showForm = function( thisForm ){\r\n l.frm.show = thisForm;\r\n l.errorMessages = {};\r\n l.hasErrors = false;\r\n l.complete = false;\r\n // Clear out form fields when changing forms\r\n l.frm.loginemail = '';\r\n l.frm.newemail = '';\r\n l.frm.pword = '';\r\n l.frm.firstname = '';\r\n l.frm.lastname = '';\r\n if( thisForm == 'login' ){\r\n l.mainLabel = \"SignUpGenius Login\";\r\n l.btnLabel = 'Login';\r\n } else if(thisForm == 'register' ){\r\n l.mainLabel = \"Account Registration\";\r\n l.btnLabel = 'Register Now';\r\n }\r\n else if(thisForm == 'blacklisted' ){\r\n l.mainLabel = 'Account Login Disabled';\r\n l.btnLabel = 'Send Link';\r\n }\r\n else {\r\n l.mainLabel = \"Forgot Your Password?\";\r\n l.btnLabel = 'Submit';\r\n }\r\n };\r\n\r\n /** processing forgot password **/\r\n l.forgotPassword = function(){\r\n validateForm();\r\n if( l.hasErrors )\r\n return;\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.loginemail;\r\n svc.forgotPassword( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n errorHandler( r.data );\r\n }\r\n else {\r\n l.complete = true;\r\n l.message = sce.trustAsHtml(r.data.message);\r\n l.hideForgotPassword = true;\r\n }\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n });\r\n\r\n };\r\n\r\n\r\n /** login user **/\r\n l.loginUser = function(){\r\n validateForm();\r\n if( l.hasErrors ) {\r\n return;\r\n }\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.loginemail;\r\n data.password = l.frm.pword;\r\n\t\t\tif( l.frm.remember ) {\r\n\t\t\t\tdata.remember = l.frm.remember;\r\n\t\t\t}\r\n svc.loginUser( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n var d = 'data' in r.data ? r.data.data : {};\r\n if( angular.isDefined(d.isblacklisted) && d.isblacklisted ){\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n l.blacklistedAddress = l.frm.loginemail;\r\n l.frm.pword = '';\r\n l.showForm( 'blacklisted' );\r\n } else {\r\n // Handle failed logins\r\n\t\t\t\t\t\t\tl.failedlogins = r.data.data.failed;\r\n l.ipfailedlogins = r.data.data.recaptcha.count;\r\n\t\t\t\t\t\t\tl.showrecaptcha = l.recaptchafeature.enabled && (l.failedlogins >= l.recaptchafeature.displayafter_attempts || l.ipfailedlogins >= r.data.data.recaptcha.limit) ? true : false;\r\n errorHandler( r.data );\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n }\r\n }\r\n else {\r\n var resp = {};\r\n resp.data = r.data.data;\r\n\r\n resp.status = 'loggedin';\r\n l.failedlogins = 0;\r\n l.showrecaptcha = false;\r\n l.passwordmustbechanged = resp.data.passwordmustbechanged;\r\n l.memberID = r.data.data.memberID;\r\n\r\n // Reset the captchaValid so the user has to check the captcha on the change password view\r\n l.captchaValid = false;\r\n // utility.setCookie('SLID',resp.data.slid); - no longer needed\r\n\r\n\t\t\t\t\t\t// Redirect user to reset password in modal if password has expired\r\n if (l.passwordmustbechanged) {\r\n\t\t\t\t\t l.frm.pword = '';\r\n \tl.frm.show = 'changepassword';\r\n \tl.processing = false;\r\n \tl.mainLabel = 'Password Expired';\r\n \tl.saveresp = resp;\r\n } else {\r\n \t\tm.close( resp );\r\n }\r\n\r\n // if we are a subadmin logging back in to the wizard...\r\n if(r.data.data.showintermediatelogin && $window.location.href.indexOf('=w.manageSignUp#') > -1){\r\n // for now, just redirect, eventually we need to build out an account selection UI for the modal instead\r\n $window.location.href = '/myaccount/resetadminid/1';\r\n }\r\n }\r\n });\r\n };\r\n\r\n /** method to register a user **/\r\n l.registerUser = function(){\r\n validateForm();\r\n\r\n if( l.hasErrors )\r\n return;\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.loginemail;\r\n data.password = l.frm.pword;\r\n data.firstname = l.frm.firstname;\r\n data.lastname = l.frm.lastname;\r\n data.companyname = l.frm.companyname;\r\n // Changed to true so all new accounts bypass verification restriction (new as of 2022)\r\n data.loginuser = true;\r\n svc.createMember( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n // return to the login form\r\n oldBtn = 'Login';\r\n l.showForm('login');\r\n createMemberMessageHandler(r.data);\r\n }\r\n else {\r\n if( angular.isDefined(r.data.message) && r.data.message.toString() !== '' ){\r\n // successful - but typically happens when email verification if needed\r\n var messageTitleOverride = null;\r\n\r\n if (r.data.success) {\r\n messageTitleOverride = 'Account verification required';\r\n }\r\n\r\n createMemberMessageHandler(r.data, messageTitleOverride);\r\n\r\n l.frm.pword = '';\r\n l.frm.firstname = '';\r\n l.frm.lastname = '';\r\n l.showForm('login');\r\n oldBtn = 'Login';\r\n } else {\r\n // all good, log the user into the system\r\n if( angular.isDefined(r.data.data.memberid) && parseInt( r.data.data.memberid ) > 0 ){\r\n var resp = {};\r\n resp.data = r.data.data;\r\n resp.status = 'loggedin';\r\n // Call code to start LiveRamp ATS\r\n $window.startAts(r.data.data.email);\r\n m.close( resp );\r\n }\r\n else {\r\n util.showMagnificAlert('An unknown error occurred. If this error persists, please contact support.');\r\n }\r\n }\r\n }\r\n l.btnLabel = oldBtn;\r\n l.processing = false;\r\n });\r\n };\r\n\r\n /** method to verify blacklisted address **/\r\n l.verifyAddress = function(){\r\n if( l.frm.verifytype === 'new' ){\r\n validateForm();\r\n if( l.hasErrors )\r\n return;\r\n }\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.newemail;\r\n data.previousEmail = l.frm.loginemail;\r\n svc.verifyDisabledAccount( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n errorHandler( r.data );\r\n }\r\n else {\r\n l.complete = true;\r\n l.message = r.data.message;\r\n }\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n });\r\n\r\n };\r\n\r\n var originalFbButtonLabel = angular.copy(l.fbBtnLabel);\r\n var setProcessing = function(processing){\r\n if(processing){\r\n l.processing = true;\r\n l.fbBtnLabel = 'Processing...';\r\n l.fbLoading = true;\r\n } else {\r\n l.processing = false;\r\n l.fbBtnLabel = originalFbButtonLabel;\r\n l.fbLoading = false;\r\n }\r\n };\r\n\r\n /** facebook login implementation **/\r\n l.loginFBUser = function(){\r\n var fbAuthInfo = {};\r\n var fbUserInfo = {};\r\n l.fbAuth = true;\r\n l.message = '';\r\n setProcessing(true);\r\n fbSvc.fbLogin()\r\n .then( function(response){\r\n var r = util.lowerCaseKeys( response );\r\n if( r.status === 'connected' && angular.isDefined(r.authresponse) && angular.isDefined(r.authresponse.accesstoken) ){\r\n fbAuthInfo = r.authresponse;\r\n return fbSvc.getFBUserInfo( fbAuthInfo );\r\n } else {\r\n // did not authenticate\r\n setProcessing(false);\r\n }\r\n },function(err){\r\n // rejected\r\n setProcessing(false);\r\n })\r\n .then( function(userinfo){\r\n if( angular.isDefined(userinfo) ){\r\n var result = util.lowerCaseKeys( userinfo ).data;\r\n var failed = false;\r\n if( !result.success ){\r\n util.showMagnificAlert(result.message.toString());\r\n failed = true;\r\n setProcessing(false);\r\n } else {\r\n fbUserInfo = result.data;\r\n if( !angular.isDefined(fbUserInfo.email) || !fbUserInfo.email.toString().length ){\r\n util.showMagnificAlert('Invalid or missing email address. Your email address is required to log into your SignUpGenius account using Facebook.');\r\n failed = true;\r\n setProcessing(false);\r\n } else {\r\n var data = {};\r\n data.type = 'fb';\r\n data.email = fbUserInfo.email;\r\n data.firstname = fbUserInfo.first_name || '';\r\n data.lastname = fbUserInfo.last_name || '';\r\n data.userid = fbUserInfo.id;\r\n data.authToken = fbAuthInfo.accesstoken;\r\n \t\t\t\t\t\t\t\tif( l.frm.remember )\r\n \t\t\t\t\t\t\t\t\tdata.remember = l.frm.remember;\r\n return svc.loginUser( data );\r\n }\r\n }\r\n if( failed ){\r\n l.fbAuth = false;\r\n }\r\n }\r\n })\r\n .then( function( user ){\r\n if( angular.isDefined(user) ){\r\n var r = util.lowerCaseKeys( user );\r\n if( !resultCheck( r.data ) ){\r\n setProcessing(false);\r\n var d = 'data' in r.data ? r.data.data : {};\r\n if( angular.isDefined(d.isblacklisted) && d.isblacklisted ){\r\n l.blacklistedAddress = fbUserInfo.email;\r\n l.frm.loginemail = fbUserInfo.email;\r\n l.frm.pword = '';\r\n l.showForm( 'blacklisted' );\r\n } else {\r\n errorHandler( r.data );\r\n }\r\n } else {\r\n // all good, log the user into the system\r\n if( angular.isDefined(r.data.data.memberid) && parseInt( r.data.data.memberid ) > 0 ){\r\n var resp = {};\r\n resp.data = r.data.data;\r\n resp.status = 'loggedin';\r\n m.close( resp );\r\n }\r\n else {\r\n util.showMagnificAlert('An unknown error occurred. If this error persists, please contact support.');\r\n setProcessing(false);\r\n }\r\n }\r\n l.fbAuth = false;\r\n setProcessing(false);\r\n }\r\n });\r\n };\r\n\r\n l.frmDisabled = function(){\r\n return l.fbAuth;\r\n };\r\n\r\n l.errorExists = function( elem ){\r\n return (elem in l.errorMessages );\r\n };\r\n\r\n l.getError = function( elem ){\r\n return (elem in l.errorMessages ) ? l.errorMessages[elem] : '';\r\n };\r\n\r\n l.close = function(){\r\n m.dismiss();\r\n };\r\n\r\n var validateForm = function( ){\r\n l.passwordErrors = {};\r\n l.errorMessages = {};\r\n l.hasErrors = false;\r\n var errorMessages = {\r\n \"loginemail\" : \"You must enter a valid email address.\",\r\n \"pword\" : \"You must enter a password.\",\r\n \"pword2\" : \"You must confirm the password.\",\r\n \"firstname\" : \"You must enter a first name.\",\r\n \"lastname\" : \"You must enter a last name.\",\r\n \"newemail\" : \"You must enter a valid email address.\",\r\n \"passwordInvalid\" : \"The password you entered does not meet our password criteria.\",\r\n \"passwordMatch\" : \"The passwords do not match.\",\r\n \"companyname\" : \"You must enter a company name.\"\r\n };\r\n\r\n var fields = ['loginemail','pword'];\r\n var pword = '';\r\n var pwordLenError = [];\r\n var pwordminlen = 0;\r\n\r\n var key = '';\r\n if ( l.frm.show === 'register' ) {\r\n fields = ['firstname','lastname','loginemail','pword'];\r\n if( l.requirecompany ){ fields.push('companyname'); } //if company name is required check for it too\r\n pword = fields[3]; //ensures we use the same key\r\n valdiatePasswordStrength();\r\n } else if( l.frm.show === 'forgotpassword' ) {\r\n fields = ['loginemail'];\r\n if (!commonRegExService.emailRegEx().test(l.frm.loginemail)) {\r\n l.errorMessages.loginemail = errorMessages.loginemail;\r\n }\r\n } else if( l.frm.show === 'blacklisted' && l.frm.verifytype == 'new' ) {\r\n fields = ['newemail'];\r\n } else if ( l.frm.show === 'changepassword') {\r\n \tfields = ['pword','pword2'];\r\n \tvaldiatePasswordStrength();\r\n \tif ( l.frm.pword && l.frm.pword2 && l.frm.pword !== l.frm.pword2 ) {\r\n \t\tl.errorMessages.passwordMatch = errorMessages.passwordMatch;\r\n \t\tl.hasErrors = true;\r\n \t}\r\n };\r\n\r\n\r\n angular.forEach( fields, function(obj,key){\r\n if( !angular.isDefined( l.frm[obj] ) || typeof l.frm[obj] === undefined || !l.frm[obj].toString().length ){\r\n l.errorMessages[obj] = errorMessages[obj];\r\n l.hasErrors = true;\r\n }\r\n });\r\n\r\n\r\n if( ( (l.frm.show === 'forgotpassword' || l.frm.show === 'register') && !l.captchaValid) || (l.frm.show === 'login' && l.showrecaptcha && !l.captchaValid) ){\r\n util.showMagnificAlert('Invalid captcha response.');\r\n l.hasErrors = true;\r\n }\r\n\r\n };\r\n\r\n var validateRecaptcha = function (){\r\n if (!l.captchaValid) {\r\n util.showMagnificAlert('Invalid captcha response.');\r\n l.hasErrors = true;\r\n }\r\n }\r\n\r\n var resultCheck = function( response ){\r\n\t\t\tvar result = util.lowerCaseKeys( response );\r\n try {\r\n\t\t\t return (angular.isDefined(result.success) && result.success && angular.isDefined(result.data));\r\n } catch( e ){\r\n return false;\r\n }\r\n\t\t};\r\n\r\n var errorHandler = function( response ){\r\n\t\t\tvar errMessage = svc.resultErrorHandler( response );\r\n\t\t\tutil.showMagnificAlert(errMessage);\r\n\t\t};\r\n\r\n var createMemberMessageHandler = function (response, messageTitleOverride) {\r\n var overriddenTitle = messageTitleOverride || null;\r\n var heading = overriddenTitle;\r\n\t\t\tvar errMessage = svc.resultErrorHandler( response );\r\n var alertType = response.success ? 'success' : 'error';\r\n if (!heading) {\r\n if (response && response.data && response.data.messagetitle) {\r\n heading = response.data.messagetitle;\r\n } else {\r\n heading = response.success ? 'Success' : 'Error';\r\n }\r\n }\r\n\r\n\t\t\tutil.showMagnificAlert(errMessage, alertType, '', heading); \r\n };\r\n\r\n // check if we're loading the registration page first\r\n if( angular.isDefined(register) && register )\r\n l.showForm('register');\r\n\r\n // captcha callback\r\n recaptchaCallback = function( resp ){\r\n util.validateCaptcha( resp )\r\n .then( function(response){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n l.captchaValid = false;\r\n }\r\n else {\r\n l.captchaValid = r.data.data;\r\n }\r\n\r\n });\r\n };\r\n\r\n // Hack to fix weird iOS input cursor positioning bug\r\n l.iosPositioningFix = function(e){\r\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\r\n if(iOS){\r\n window.scrollTo(0,0);\r\n angular.element(e.target).focus();\r\n }\r\n };\r\n\r\n\r\n\t\tvar valdiatePasswordStrength = function() {\r\n\t\t\tvar payload = { \"password\": l.frm.pword };\r\n\t\t\tsvc.validatePasswordRules(payload)\r\n\t\t\t\t.then( function(response){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\tvar passwordValidation = r.data;\r\n\r\n \t\t\t\t\tif (!passwordValidation.success) {\r\n l.passwordErrorIsString = typeof(passwordValidation.message) == 'string' ? true : false;\r\n\t\t\t\t\t\tl.passwordErrors = passwordValidation.message;\r\n\t\t\t\t\t\tl.errorMessages.passwordInvalid = \"The password you entered does not meet our password criteria.\";\r\n\t\t\t\t\t\tl.hasErrors = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\t/** method to change user password **/\r\n\t\tl.changepassword = function() {\r\n validateForm();\r\n validateRecaptcha();\r\n\r\n\t\t\t$timeout(function() {\r\n\t\t\t\tif (!l.hasErrors) {\r\n\t\t\t\t\tvar payload = { \"ID\": l.saveresp.data.memberid, \"pword\": l.frm.pword };\r\n\t\t\t\t\tsvc.changePassword(payload)\r\n\t\t\t\t\t\t.then( function(response){\r\n\t\t\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\t\t\tvar changePassword = r.data;\r\n\t\t\t\t\t\t\tif (!changePassword.success) {\r\n\t\t\t\t\t\t\t\tl.hasErrors = true;\r\n\t\t\t\t\t\t\t\tl.errorMessages = changePassword.message;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tm.close( l.saveresp );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, 2000);\r\n }\r\n\r\n /** Parse URL vars to determine if Company Name is part of Registration */\r\n var params = utility.getAllUrlParams();\r\n l.showcompany = typeof params.showcompany !== 'undefined' ? !!+params.showcompany : !!+0;\r\n l.requirecompany = typeof params.requirecompany !== 'undefined' && l.showcompany ? !!+params.requirecompany : !!+0;\r\n l.isoptional = l.requirecompany ? '' : ' (optional)';\r\n\r\n }]);\r\n\r\n})();\r\n","(function () {\r\n\r\n /** sign up form service **/\r\n SUGApp.service('loginservice', ['SUGUtilities', function(util){\r\n\r\n var service = {};\r\n\r\n service.getUserInfo = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"m.getMemberInfo\", 15000 );\r\n };\r\n\r\n service.getMainNavigation = function(){\r\n return util.APISyncCall( \"post\", \"\", \"\", \"c.getMainNavigation\", 15000 );\r\n };\r\n\r\n service.resultErrorHandler = function( response ){\r\n \t\tvar Message = \"\";\r\n \t\tvar result = util.lowerCaseKeys(response);\r\n \t\tif( angular.isDefined(result.message) ){\r\n \t\t\tif( angular.isArray(result.message) ){\r\n angular.forEach( result.message, function(obj,key){\r\n Message += obj + \" \";\r\n });\r\n \t\t\t} else {\r\n \t\t\t\tMessage = result.message;\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tif( util.isDefinedNotNullNotEmpty(result.statustext) ){\r\n \t\t\t\tMessage = result.statustext;\r\n \t\t\t} else if( typeof result.status !== undefined && result.status === 0 ){\r\n \t\t\t\tMessage = 'Request timeout exceeded. Make sure you are logged in and have an active session.';\r\n \t\t\t}\r\n \t\t\telse {\r\n \t\t\t\tMessage = 'An unknown error occurred while processing your request';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn Message;\r\n \t};\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n})();\r\n","(function () {\r\n\r\n // inject ui.bootstrap\r\n angular.module(\"SUGApp\").requires.push('ui.bootstrap');\r\n\r\n SUGApp.factory('loginfactory', ['SUGUtilities', '$sce', 'loginservice', '$uibModal', '$window', 'authenticationService', '$filter', '$location', '$timeout', '$q', function (util, sce, svc, modal, win, authSvc, filter, location, timeout, $q) {\r\n\r\n var service = {};\r\n service.getLogin = function (disableRegistration, showregistrationfirst) {\r\n var s = {};\r\n s.allowRegistration = disableRegistration ? false : true;\r\n s.showregistrationfirst = showregistrationfirst ? showregistrationfirst : false; //controls if it should default to registration screen instead\r\n s.h = new Date().getTime();\r\n s.user = {};\r\n s.user.loggedin = false;\r\n s.attrs = {};\r\n s.asyncSuccess = true;\r\n s.success = true;\r\n s.errorMessages = {};\r\n s.fbAppId = '';\r\n s.objForm = {};\r\n s.objForm.listid = 0;\r\n s.objForm.owner = 0;\r\n s.objForm.urlid = utility.getUrlParamValue('urlid'); // utility is available globally\r\n s.objForm.siid = '';\r\n s.objForm.imid = 0;\r\n s.objForm.usealternatename = false;\r\n s.objForm.changemembermame = false;\r\n s.objForm.displayfirstname = '';\r\n s.objForm.displaylastname = '';\r\n s.objForm.firstname = '';\r\n s.objForm.lastname = '';\r\n s.objForm.email = '';\r\n s.objForm.savecontactinfo = false;\r\n\r\n s.labels = {\r\n \"cancelBtn\": \"Cancel\",\r\n \"deleteBtn\": \"Delete\",\r\n \"breadcrumbBtn\": \"Back to \",\r\n \"contactinfo\": \"Contact info:\",\r\n \"additionalinfo\": \"Additional info:\"\r\n };\r\n\r\n s.standardErrors = {\r\n \"email_invalid\": \"You must enter a valid email address.\",\r\n \"email_length\": \"Email address must not exceed 100 characters.\",\r\n \"firstname_length\": \"First name must not exceed 50 charcters.\",\r\n \"lastname_length\": \"Last name must not exceed 100 characters.\",\r\n \"quantity_invalid\": \"The quantity must be all numeric.\",\r\n \"savecontactinfo\": \"You must populate the address and/or phone information when selecting this option.\"\r\n };\r\n\r\n s.errormessage = \"Oops! Something went wrong. We can't seem to find the sign up information you've requested. If this error persists, please contact support.\";\r\n\r\n /** helper method for updating top navigation menu **/\r\n var updateMenu = function () {\r\n svc.getMainNavigation()\r\n .then(function (response) {\r\n var r = util.lowerCaseKeys(response);\r\n if (!resultCheck(r.data)) {\r\n errorHandler(r.data);\r\n } else {\r\n var menu = angular.element(document.querySelector('#main-nav'));\r\n menu.empty(); // remove existing menu\r\n menu.append(r.data.data); // append the new menu\r\n }\r\n });\r\n };\r\n\r\n var elemLenCheck = function (elem) {\r\n return isD(s.objForm[elem]) ? s.objForm[elem].toString().trim().length : 0;\r\n };\r\n\r\n var resultCheck = function (response) {\r\n var result = util.lowerCaseKeys(response);\r\n try {\r\n return (angular.isDefined(result.success) && result.success && angular.isDefined(result.data));\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n var errorHandler = function (response) {\r\n var errMessage = svc.resultErrorHandler(response);\r\n util.showMagnificAlert(errMessage);\r\n };\r\n\r\n /** helper method for converting values to float **/\r\n var toFloat = function (val) {\r\n return typeof val !== \"undefined\" && val !== \"\" ? parseFloat(parseFloat(val.toString().replace(',', '')).toFixed(2)) : 0.00;\r\n };\r\n\r\n /** helper method for lower casing strings **/\r\n var lowerCaseIt = function (str) {\r\n return str.toString().toLowerCase().trim();\r\n };\r\n\r\n /** helper method for checking if a variable or key is defined **/\r\n var isD = function (key) {\r\n return angular.isDefined(key);\r\n };\r\n\r\n /** logout method **/\r\n s.logout = function () {\r\n s.asyncSuccess = true;\r\n authSvc.logoutUser()\r\n .then(function (response) {\r\n var r = util.lowerCaseKeys(response);\r\n if (!resultCheck(r.data)) {\r\n s.asyncSuccess = false;\r\n errorHandler(r.data);\r\n } else {\r\n s.user = {};\r\n s.user.loggedin = false;\r\n if (isD(s.attrs.thismemberid))\r\n delete s.attrs.thismemberid;\r\n if (isD(s.attrs.mid))\r\n delete s.attrs.mid;\r\n\r\n // update upper main navivation menus\r\n updateMenu();\r\n }\r\n })\r\n .finally(() => {\r\n window.sugTagManager.reset();\r\n });\r\n };\r\n\r\n s.preplogin = function ( required, destination, allowregister, showregister ) {\r\n // possible overrides for forcing user to Register (part of email gating changes)\r\n s.allowRegistration = allowregister ? allowregister : true;\r\n s.showregistrationfirst = showregister ? showregister : false;\r\n\r\n svc.getUserInfo().then(\r\n function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n\r\n if ( !r.data ) {\r\n //switch to https\r\n\r\n //show login window in https\r\n s.login( required, destination, s.allowRegistration, s.showregistrationfirst );\r\n } else if (r.data.data ) {\r\n\r\n if (r.data.data.memberid > 0 && destination !== undefined && destination !== '' ) {\r\n win.location.href = destination;\r\n } else {\r\n s.login( required, destination, s.allowRegistration, s.showregistrationfirst );\r\n }\r\n } else {\r\n s.login( required, destination, s.allowRegistration, s.showregistrationfirst );\r\n }\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * login method\r\n * Spawns a modal that shows either a login form (default) or a register form\r\n *\r\n * @required - Boolean; Determines if login is required\r\n * @destination - String; location to send the user after login/registration\r\n * @allowregister - Boolean; Determines if user registration is allowed\r\n * @showregister - Boolean; Determines if the registration form is shown (allowregister must also be true)\r\n */\r\n s.login = function (required, destination, allowregister, showregister) {\r\n var deferred = $q.defer();\r\n var loginRequired = typeof required !== 'undefined' ? required : false;\r\n\r\n // possible overrides for forcing user to Register (part of email gating changes)\r\n s.allowRegistration = allowregister ? allowregister : true;\r\n s.showregistrationfirst = showregister ? showregister : false;\r\n var loginWindow = modal.open({\r\n templateUrl: '/view/templates/main/login.html',\r\n controller: 'authenticationController',\r\n resolve: {\r\n loginRequired: function () {\r\n return loginRequired;\r\n },\r\n loginMessage: function () {\r\n return '';\r\n },\r\n register: function () {\r\n return (!s.user.loggedin && s.showregistrationfirst && s.allowRegistration);\r\n },\r\n registerDisabled: function () {\r\n return !s.allowRegistration;\r\n }\r\n }\r\n\r\n });\r\n\r\n loginWindow.result.then(function (response) {\r\n var r = response;\r\n\r\n if (isD(r.status) && r.status === 'loggedin' && isD(r.data) && isD(r.data.memberid) && parseInt(r.data.memberid) > 0) {\r\n s.user = r.data;\r\n s.user.loggedin = true;\r\n // update upper main navigation menus\r\n updateMenu();\r\n\r\n //hooray go to the destination\r\n if (destination !== undefined && destination !== '') {\r\n win.location.href = destination;\r\n }\r\n\r\n deferred.resolve(true);\r\n }\r\n }, function (e) {\r\n deferred.reject(e);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n if (s.allowRegistration) {\r\n s.register = function () {\r\n modal.open({\r\n templateUrl: '/view/templates/main/login.html',\r\n controller: 'authenticationController',\r\n resolve: {\r\n loginRequired: function () {\r\n return false;\r\n },\r\n loginMessage: function () {\r\n return '';\r\n },\r\n register: function () {\r\n return true;\r\n },\r\n registerDisabled: function () {\r\n return false;\r\n }\r\n }\r\n }).result.then(function (response) {\r\n var r = response;\r\n if (isD(r.status) && r.status === 'loggedin' && isD(r.data) && isD(r.data.memberid) && parseInt(r.data.memberid) > 0) {\r\n s.user = r.data;\r\n s.user.loggedin = true;\r\n // update upper main navigation menus\r\n updateMenu();\r\n }\r\n });\r\n };\r\n }\r\n\r\n return s;\r\n };\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n})();"]}