{"version":3,"sources":["account-info.js","adobe-sign.js","email-signup.js","historical-pricing-lookup.js","historical-pricing.js","intelliresponse.js","investor-data-feed.js","latest-news.js","modal-slideshow.js","modal.js","multicolumn.js","news-and-resources.js","popover-controller.js","pushdown-panel.js","search-paginator.js","search-results.js","sec-filling.js","table.js","tabs.js","tertiary-nav.js","twitter-widget.js","video.js","cc-forgot-password/cc-forgot-password.js","cc-forgot-password/cc-home.js","cc-forgot-password/cc-create-confirmation-code/cc-create-confirmation-code.js","cc-forgot-password/cc-create-profile/cc-create-profile.js","hero-stock.js","popover.js","quick-links.js","directives/duke.analyst-coverage.js","directives/duke.figure.js","directives/duke.form-text-field.js","directives/duke.investor-data-feed-img.js","directives/duke.jplayer.js","directives/duke.jurisdiction-alert.js","directives/duke.pod-item.js","directives/duke.rich-text-editor.js","directives/duke.slide-animation.js","directives/duke.video-jplayer.js","directives/duke.youtube.js","forms/duke.checkbox-list.js","forms/duke.radio-button-public.js"],"names":["AccountInfoController","$scope","$window","$rootScope","$templateCache","$element","$controller","vm","this","indexOfSelected","selected","accounts","isSelectedArray","accountSelected","$","tooltip","container","indexSelected","index","i","length","IsPrimary","ind","document","querySelectorAll","maxLength","clearSearch","accountVerificationForm","data","lastSsn","fedtax","analytics","value","selectType","event","type","onSelectItem","item","itemValueText","text","radioselected","$watch","push","angular","element","innerWidth","insertBefore","insertAfter","onresize","back","forth","validations","validationsLength","errors","errorsLength","password","passwordLength","passwordField","letters","firstline","secondline","thirdline","numbers","symbols","stringReverse","$moreInfoPane","showMoreBtn","evalRegex","regex","test","getStrength","errorCode","strength","exp","returnErrorCode","strengthRegex","setStrength","tooShort","$setValidity","$validate","checkWhiteSpaces","showAllMsg","showLessMsg","currentShowMsg","$el","find","relativeURL","location","pathname","setShowLabels","more","less","showIcon","toggleMoreInfo","toggleButton","preventDefault","currentToggleButton","currentTarget","attr","slideToggle","remove","width","element2","window","resize","toggleMoreInfoOnKeyUp","keyCode","closeModal","modal","passwordStrengthIndicator","regexp_smallLetters","regexp_capitalLetters","regexp_digits","regexp_specialChars","regexp_3times","regexp_whitespace","str","out","start","pswrd","$name","val","p2","toLowerCase","substring","parseInt","indexOf","$inject","app","controller","adobeUrl","sendToAdobe","legal_name","emailSignupController","$sce","$http","keys","isFormOpen","enrolled","after","url","trustAsResourceUrl","before","$on","toggleSignupBox","dataLayer","data-category","data-action","data-label","querySelector","focus","kbHandler","$event","altKey","ctrlKey","shiftKey","stopPropagation","dismissSignupBox","api_url","method","headers","Content-Type","then","console","log","catch","addEventListener","message","fail","historicalPricingLookupController","$timeout","initData","historicalPriceLookup","date","dataResponse","endDate","startDate","loaded","error","months","setOptionItems","optionsData","items","id","getHistoricalLookupData","day_string","year_string","date_string","dataObj","Date","setDate","getDate","month_string","getMonth","toString","getFullYear","currentDate","replace","postService","response","Status","YearOptions","StartDate","EndDate","DefaultDate","MonthNames","body","StockData","historicalPricingController","chart","historicalPricing","timeValue","frecuencyValue","compareToValue","time","frecuency","compareTo","initialValues","updateChart","setInitialValues","compare","intelliresponseController","trustAsHtml","responsed","openIntel","optionsRadios","input_search_modal","input_search","interfaceID","question","domain","dessaEndpoint","question_modal","topten_modal","IntelliresponseServicePrototype","interfaceId","top10questions","current","setTop10questions","clearCurrent","setCurrentData","title","questionId","responseId","source","updateQuestionTrace","undefined","postBody","JSON","stringify","questionTraceUrl","concat","intelliresponse","openModal","origin","origin_source","sourceId","paramObj","searchUrl","rating","predictive_results","getService","exactMatch","recomended","relatedEntries","exactMatches","search","multiples","partialMatches","partial","data_response","sendRadio","requestType","ratingUrl","ready","on","addClass","css","openToptenModal","checkIntelResults","suggestUrl","checkIntelResultsModal","initProcess","init","getTop10questions","top10Url","topQuestions","investorStylesController","latestNewsController","$q","defaults","post","$httpProvider","useApplyAsync","latestNewsService","service","dataObject","deferred","defer","ajaxObj","serviceName","resolve","reject","promise","selectedRegion","dropdownText","regionalNews","regionList","status","isopen","toggled","open","selectRegion","defaultRegion","stateCode","code","name","target","html","getNews","state","news","getRegions","regions","timeTagFormat","dateString","splitDate","split","ModalSlideShowController","$document","modalImages","modalNextButton","modalWindow","dataLabelH3","textTitle","click","currentSlide","slideHeadline","currentSlideNumber","put","ModalInstanceCtrl","$modalInstance","ok","close","cancel","dismiss","multicolumnBody","containers","getElementsByClassName","removeClass","multicolumnController","newsAndResourcesController","$filter","filter","orderBy","limitTo","bodyData","filteredItems","totalFilterResults","showLimit","maxShowLimit","sortColumn","descending","table","sort","currentCol","showButtonState","icon","closed","e","columnHead","columnIndex","el","sortOrder","isShowButtonOpen","showButton","sortable","limit","newValue","oldValue","setSortableTable","addSortIndicator","paintSelectedColumn","getResources","FilterOptions","tableHead","Columns","Resources","map","c","parse","noData","unshift","tableData","getColumnKey","filterResults","Object","sortColumnBy","columnKey","hasClass","changeSorting","columnHeader","currentColumn","showMoreLabel","showLessLabel","temp","filterOption","keyboardHandler","$index","popoverController","$cookies","$parent","popoverTrigger","popover","focusout","placementPositionStr","context","$apply","pushdownCtrl","parentID","_activePanel","$container","$globalIndicator","btn_type","setParentID","activePanel","containerID","color","panels","indicator","panel","children","eq","getComputedStyle","getPropertyValue","classList","add","style","borderBottomColor","resetPush","searchPaginationCtrl","$location","$anchorScroll","DessaService","id2","interfaceId2","traceId","searchResultsJson","customerTypeResidential","customerTypeBusiness","resId","busId","initId","resultsperpage","searchInputTextAnalytics","maxSize","initialLoaded","getElementById","activePage","pageNumber","parentNode","contains","innerText","isNaN","Number","dataLayerPush","searchInputText","dessa","showSuggestedResults","totalItems","firstResult","lastResult","itemsPerPage","commonSearchTitle","_recommendedResults","_commonSearches","_moreResults","yOffset","getPredictiveResults","titleHide","relatedQuestionsTitle","recommendedResultsTitle","moreResultsTitle","safeApply","fn","phase","$root","$$phase","pageChanged","searchText","pagination","currentPage","customerTypeFilter","realCount","pageChangedUrl","isUndefined","isNotNull","MoreResults","CurrentPage","FirstItemIndex","LastItemIndex","hash","sendQueryString","sendQueryStringUrl","TotalResultCount","recommendedResults","RecommendedResults","ResultItems","commonSearchResults","CommonSearches","moreResults","dataCategory","dataAction","dataLabel","event-category","event-label","event-action","vpvDataLayerPush","dataName","vpv-name","vpv","sendCommonSearch","commonSearch","searchPlaceholder","searchByQueryString","searchInput","result","pageUrlVariable","count","stringSearchParam","decodeURIComponent","questionHeader","slice","inputObject","actionSearch","changeFilter","customerTypeMobileCtrl","isFirstOpen","isFirstDisabled","secFilingController","currentLimit","limitData","companyItems","yearItems","fillingTypeItems","currentCompany","currentType","currentYear","onClickUpdate","getSecFillingData","sortCol","sortDir","sortDirection","filingType","company","year","DefaultNumberToShow","rows","ColumnNames","CompanyOptions","filingTypeItems","FilingTypeOptions","SecFilingData","innerHTML","getColumnIndex","currentSortDirection","newSortDirection","tableController","a","b","d","f","g","activeSortColumn","column","tabsController","componentID","activeTab","changeTab","tab","currentTabID","hideTabs","history","pushState","_","escape","checkArrows","thenum","key","numberOfTabs","showFirstTab","popStateListener","getActiveTab","setInitTab","ID","_angular$element","href","input","div","createElement","textContent","TertiaryNavCtrl","lists","outerWidth","forEach","list","obj","colCount","otherListLength","otherIndex","closest","tertiaryActive","toggleTertiary","isCollapsed","checkTertiaryNav","TwitterWidgetController","userHandle","twitDescription","controlsPrev","carouselItems","controlsNext","userHandleValue","twitDescriptionContent","setTimeout","delay","videoController","$broadcast","CCForgotPasswordController","assetService","$state","cyclePath","path","forgotPasswordRouteStates","CONFIRMATION_CODE","change","nameBtn","cyclePathPin","ENTER_PIN_NUMBER","CREATE_NEW_PASSWORD","mainBtnActivate","actualPath","cancelPath","forgotPasswordEvents","SAVE_DATA","go","CCHomeForgotPassword","FORGOT_PASSWORD","CCCreateConfirmationCode","CCCreateProfileController","cookiesService","SUCCESS","button","content","toggle","isFunction","trigger","placement","toggleLink","hasToggle","targetLink","dessaComponent","quickLinks","toggleIsOpen","toggleDESSA","active","guid","maxHeight","setAttribute","getAttribute","Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","s","ancestor","documentElement","parentElement","label","action","category","directive","$compile","restrict","scope","link","attrs","allAnchors","anchor","$modal","ngModel","modalCustom","modalContent","animation","templateUrl","windowTemplateUrl","size","require","valueKey","valueSource","$setViewValue","get","$render","errorId","template","videoStarted","updatePlayer","$player","jPlayer","swfPath","supplied","solution","wmode","height","cssClass","cssSelectorAncestor","useStateClassSkin","autoBlur","smoothPlayBar","keyEnabled","remainingDuration","toggleDuration","m4v","src","mp4","webmv","poster","autoplay","play","$digest","pause","stop","ended","end","unbind","fromJson","video","closeJurisdictionAlert","alertContainer","revertLocationChange","redirectUrl","alertId","imageSource","imageAlt","$attrs","scrollToDiv","beforeAddClass","className","done","finishPoint","parent","direction","TweenMax","to","left","onComplete","startPoint","fromTo","ismodal","headline","newElement","ccLoadPolicy","modestbranding","rel","allowfullscreen","tElem","tAttrs","allowFullScreen","iFrame","youtube_init","options","negOne","playIframeVideo","$parse","selectedItems","labelsMap","checkboxGroups","checkboxClick","checkboxInput","isChecked","$viewValue","$setTouched","checkboxObject","checked","priority","myModel","radioId","radioGroupName","innerValue","onSelected","transclude","removeAttr","radioInput","model","radioChange","temporalRadioValue"],"mappings":"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","file":"components.public.min.js","sourcesContent":["/*\r\n * Angular controller\r\n * RequestTemporaryPasswordController\r\n * \r\n */\r\nfunction AccountInfoController($scope, $window, $rootScope, $templateCache, $element, $controller) {\r\n\r\n let vm = this;\r\n vm.indexOfSelected = null;\r\n vm.selected = false;\r\n $scope.accounts = [];\r\n vm.isSelectedArray = [];\r\n vm.accountSelected = null;\r\n\r\n $('.test-tooltip-1').tooltip({\r\n container: '.container-1'\r\n });\r\n\r\n $('.test-tooltip-2').tooltip({\r\n container: '.container-2'\r\n });\r\n\r\n vm.indexSelected = function (index) {\r\n let ind = index;\r\n for (let i = 0; i < vm.isSelectedArray.length; i++) {\r\n vm.isSelectedArray[i] = false;\r\n $scope.accounts[i].IsPrimary = false;\r\n }\r\n vm.isSelectedArray[ind] = true;\r\n $scope.accounts[ind].IsPrimary = true;\r\n\r\n vm.accountSelected = $scope.accounts[ind];\r\n }\r\n\r\n document.querySelectorAll('.input-control').maxLength = \"75\";\r\n\r\n $scope.clearSearch = function () {\r\n $scope.accountVerificationForm.data.lastSsn = \"\";\r\n $scope.accountVerificationForm.data.fedtax = \"\";\r\n }\r\n\r\n $scope.analytics = {\r\n value: ''\r\n }\r\n\r\n $scope.selectType = function (event, type) {\r\n let selectedRadio = $scope.analytics.value;\r\n }\r\n\r\n $scope.onSelectItem = function (item) {\r\n\r\n $scope.itemValueText = item.text;\r\n\r\n };\r\n\r\n $scope.radioselected = function (value) {\r\n $scope.analytics.value = value;\r\n }\r\n\r\n $scope.$watch('accounts', function () {\r\n for (let i = 0; i < $scope.accounts.length; i++) {\r\n vm.isSelectedArray.push(false);\r\n }\r\n vm.accountSelected =$scope.accounts[index];\r\n });\r\n\r\n let iW = angular.element(document).innerWidth();\r\n\r\n if (iW < 720) {\r\n $('.order-change-r').insertBefore('.order-change-l');\r\n } else {\r\n $('.order-change-r').insertAfter('.order-change-l');\r\n }\r\n\r\n $window.onresize = function () {\r\n iW = angular.element(document).innerWidth();\r\n if (iW < 720) {\r\n $('.order-change-r').insertBefore('.order-change-l');\r\n } else {\r\n $('.order-change-r').insertAfter('.order-change-l');\r\n }\r\n }\r\n\r\n let $this = $scope,\r\n $el = $element,\r\n $moreInfoPane = null,\r\n showMoreBtn = angular.element('button.more-info-label');\r\n vm.showAllMsg = \"\";\r\n vm.showLessMsg = \"\";\r\n vm.currentShowMsg = \"\";\r\n $moreInfoPane = angular.element($el.find('.more-info-more'));\r\n\r\n vm.relativeURL = $window.location.pathname;\r\n\r\n vm.setShowLabels = function (more, less) {\r\n vm.showAllMsg = more;\r\n vm.showLessMsg = less;\r\n\r\n\r\n vm.currentShowMsg = vm.showAllMsg;\r\n vm.showIcon = \"caret-arrow-down\";\r\n };\r\n\r\n vm.toggleMoreInfo = function (toggleButton) {\r\n toggleButton.preventDefault();\r\n let currentToggleButton = angular.element(toggleButton.currentTarget);\r\n currentToggleButton.attr('aria-pressed', 'true');\r\n\r\n if (vm.currentShowMsg == vm.showLessMsg) {\r\n\r\n vm.showIcon = \"caret-arrow-down\";\r\n vm.currentShowMsg = vm.showAllMsg;\r\n currentToggleButton.attr('aria-expanded', 'false');\r\n currentToggleButton.attr('aria-pressed', 'false');\r\n\r\n } else {\r\n\r\n vm.showIcon = \"caret-arrow-up\";\r\n vm.currentShowMsg = vm.showLessMsg;\r\n currentToggleButton.attr('aria-expanded', 'true');\r\n\r\n }\r\n $moreInfoPane.slideToggle();\r\n $scope.$watch('accounts', function () {\r\n if ($scope.accounts.length < 11) {\r\n showMoreBtn.remove();\r\n }\r\n });\r\n\r\n let element = angular.element('table.moreaccounts.more');\r\n\r\n if ($(document).width() > 767){\r\n $(element).attr('style', 'margin-bottom: 13px !important');\r\n } else {\r\n $(element).attr('style', 'margin-bottom: 0px !important');\r\n }\r\n\r\n\r\n let element2 = angular.element('table.moreaccounts.more.din-pad');\r\n\r\n if ($(document).width() > 767) {\r\n $(element2).attr('style', 'margin-bottom: 20px !important');\r\n } else {\r\n $(element2).attr('style', 'margin-bottom: 8px !important');\r\n }\r\n };\r\n\r\n $(window).resize(function () {\r\n let element = document.querySelectorAll('table.moreaccounts.more');\r\n if ($(document).width() > 767)\r\n $(element).attr('style', 'margin-bottom: 50px !important');\r\n else\r\n $(element).attr('style', 'margin-bottom: 37px !important');\r\n });\r\n\r\n vm.toggleMoreInfoOnKeyUp = function (toggleButton) {\r\n toggleButton.preventDefault();\r\n if (toggleButton.keyCode === 32) {\r\n vm.toggleMoreInfo(toggleButton);\r\n }\r\n };\r\n\r\n $scope.closeModal = function ($element) {\r\n angular.element(\".modal\").modal(\"hide\");\r\n };\r\n\r\n $scope.passwordStrengthIndicator = (function () {\r\n\r\n let validations = [$scope.regexp_smallLetters, $scope.regexp_capitalLetters, $scope.regexp_digits, $scope.regexp_specialChars],\r\n validationsLength = validations.length,\r\n errors = [{\r\n 'exp': $scope.regexp_3times,\r\n 'value': 0\r\n }, {\r\n 'exp': $scope.regexp_whitespace,\r\n 'value': 0\r\n }],\r\n errorsLength = errors.length,\r\n password = \"\",\r\n passwordLength = 0,\r\n passwordField = \"\";\r\n\r\n let back,\r\n forth,\r\n i,\r\n letters = 'abcdefghijklmnopqrstuvwxyz',\r\n firstline = 'qwertyuiop',\r\n secondline = 'asdfghjkl',\r\n thirdline = 'zxcvbnm',\r\n numbers = '01234567890',\r\n symbols = '\\!@#$%&/()=?¿';\r\n\r\n function evalRegex(regex) {\r\n\r\n if (regex.test(password)) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n\r\n }\r\n\r\n function strength() {\r\n\r\n let strengthRegex = 0,\r\n strengthLength = 0,\r\n strength = 0,\r\n i = 0;\r\n\r\n /* Checks if all the validations match. */\r\n for (i = 0; i < validationsLength; i++) {\r\n strengthRegex += evalRegex(validations[i]);\r\n }\r\n\r\n\r\n /* Verifies if the length of the string is more than 10 chars. */\r\n strengthLength = passwordLength < 10 ? 0 : 1;\r\n\r\n /* Assigns the proper strength based on the length and the regex values. */\r\n if (strengthRegex >= 3) {\r\n strength = (strengthLength ? 2 : 1);\r\n } else {\r\n strength = 0;\r\n }\r\n\r\n return strength;\r\n }\r\n\r\n function returnErrorCode() {\r\n\r\n let strength = 1,\r\n i;\r\n\r\n /* Verifies if the string contains any error declared on the private variable \"errors\" */\r\n for (i = 0; i < errorsLength; i++) {\r\n if (evalRegex(errors[i].exp)) {\r\n strength = errors[i].value;\r\n break;\r\n }\r\n }\r\n\r\n return strength;\r\n }\r\n\r\n function getStrength() {\r\n\r\n let errorCode = returnErrorCode();\r\n let response = errorCode < 1 ? errorCode : strength();\r\n\r\n /* If the string is not valid, sets the value of the error. Othewise, the logic can be launched in order to improve the performance. */\r\n return response;\r\n }\r\n\r\n function setStrength(strength, tooShort) {\r\n\r\n /* Sets the strength and tooShort models. */\r\n $scope.strength = strength;\r\n $scope.tooShort = tooShort;\r\n\r\n if ($scope.tooShort || $scope.strength < 1) {\r\n passwordField.$setValidity(\"format\", false);\r\n passwordField.$validate();\r\n\r\n } else {\r\n passwordField.$setValidity(\"format\", true);\r\n }\r\n\r\n passwordField.$validate();\r\n\r\n }\r\n\r\n function startStrengthIndicator() {\r\n\r\n /* When the minlength is ok, gets the strength from getStrength() function. Otherwise sets the strength as too short. */\r\n password.length >= 8 ? setStrength(getStrength(password), false) : setStrength(-1, true);\r\n }\r\n\r\n let stringReverse = function (str) {\r\n for (let i = str.length - 1, out = ''; i >= 0; out += str[i--]) { }\r\n return out;\r\n }\r\n\r\n function passwordStrengthIndicator(pswrd) {\r\n\r\n passwordField = pswrd;\r\n\r\n /* Initialize the private variables. */\r\n //password = passwordField.$modelValue;\r\n password = angular.element(\"[name='\" + passwordField.$name + \"']\").val();\r\n //password = pswrd;\r\n passwordLength = password ? password.length : 0;\r\n\r\n /* Launches startStrengthIndicator() method upon the entry of 6 chars. */\r\n if (passwordLength >= 1) {\r\n checkWhiteSpaces() ? setStrength(-3, false) : startStrengthIndicator();\r\n } else {\r\n // 1 for whitespaces\r\n checkWhiteSpaces() ? setStrength(-3, false) : setStrength(-1, false);\r\n }\r\n\r\n\r\n // sequential letters (back and forth)\r\n for (i = 0; i < letters.length - 2; i++) {\r\n\r\n let p2 = password.toLowerCase();\r\n forth = letters.substring(i, parseInt(i + 4));\r\n back = stringReverse(forth);\r\n\r\n if (p2.indexOf(forth) !== -1 || p2.indexOf(back) !== -1) {\r\n setStrength(0, false);\r\n break;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // sequential firstline (back and forth)\r\n for (i = 0; i < firstline.length - 2; i++) {\r\n let p2 = password.toLowerCase();\r\n forth = firstline.substring(i, parseInt(i + 4));\r\n back = stringReverse(forth);\r\n if (p2.indexOf(forth) !== -1 || p2.indexOf(back) !== -1) {\r\n setStrength(0, false);\r\n\r\n\r\n break;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n // sequential secondline (back and forth)\r\n for (i = 0; i < secondline.length - 2; i++) {\r\n let p2 = password.toLowerCase();\r\n forth = secondline.substring(i, parseInt(i + 4));\r\n back = stringReverse(forth);\r\n if (p2.indexOf(forth) !== -1 || p2.indexOf(back) !== -1) {\r\n setStrength(0, false);\r\n\r\n break;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n // sequential thirdline (back and forth)\r\n for (i = 0; i < thirdline.length - 2; i++) {\r\n let p2 = password.toLowerCase();\r\n forth = thirdline.substring(i, parseInt(i + 4));\r\n back = stringReverse(forth);\r\n if (p2.indexOf(forth) !== -1 || p2.indexOf(back) !== -1) {\r\n setStrength(0, false);\r\n\r\n break;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n // sequential numbers (back and forth)\r\n for (i = 0; i < numbers.length - 2; i++) {\r\n forth = numbers.substring(i, parseInt(i + 4));\r\n back = stringReverse(forth);\r\n if (password.indexOf(forth) !== -1 || password.toLowerCase().indexOf(back) !== -1) {\r\n setStrength(0, false);\r\n\r\n break;\r\n }\r\n\r\n\r\n }\r\n\r\n // sequential symbols (back and forth)\r\n for (i = 0; i < symbols.length - 2; i++) {\r\n forth = symbols.substring(i, parseInt(i + 4));\r\n back = stringReverse(forth);\r\n if (password.indexOf(forth) !== -1 || password.toLowerCase().indexOf(back) !== -1) {\r\n setStrength(0, false);\r\n\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n function checkWhiteSpaces() {\r\n let whitespaces_test = errors[1];\r\n return evalRegex(whitespaces_test.exp);\r\n }\r\n\r\n return {\r\n start: passwordStrengthIndicator\r\n };\r\n })();\r\n\r\n};\r\n\r\nAccountInfoController.$inject = ['$scope', '$window', '$rootScope', '$templateCache', '$element', '$controller'];\r\napp.controller('AccountInfoController', AccountInfoController);","/*\r\n * adobe-form.js\r\n * adobe form url params js\r\n */\r\n\r\n    const adobeUrl = 'https://secure.na2.echosign.com/public/esignWidget?wid=CBFCIBAA3AAABLblqZhDHsmveEx1ok--0q0PTptJgmG7DDV5PpttZZiI1zWaKe4-ecBEGytFygM7T0xOBIjQ*#legal_name='\r\n    \r\n    function sendToAdobe() {\r\n        window.location = adobeUrl + legal_name.value; \r\n        return false;\r\n    }","/* email-signup.js\r\n * Angular controller to manage Email Signup form interactions.\r\n */\r\n\r\nfunction emailSignupController($scope, $element, $sce, $http, $rootScope) {\r\n let vm = this;\r\n\r\n let keys = {\r\n enter: 13,\r\n space: 32,\r\n };\r\n\r\n vm.isFormOpen = false;\r\n\r\n $scope.enrolled = false;\r\n // $scope.before = \"http://www.pages02.net/dukeenergycorporation-reside/sign-up/?sessionGUID=2c63c12b-761c-da55-0c23-b02295627582&webSyncID=8a284a25-c6d2-c980-d698-3902e6290bc1&sessionGUID=edacbc7b-7d73-dceb-9760-ca74c399e846\";\r\n $scope.after =\r\n 'http://www.pages02.net/dukeenergycorporation-reside/sign-up/thank-you.html?vs=MmM2M2MxMmItNzYxYy1kYTU1LTBjMjMtYjAyMjk1NjI3NTgyOzszMzk0MzkxOjYyMzczNjIxOTc2S0';\r\n $scope.url = $sce.trustAsResourceUrl($scope.before);\r\n /// Toggle Signup Box\r\n /// Description: open and close the Signup Form Container\r\n /// \r\n /// @none\r\n /// \r\n\r\n // listener toggle event\r\n $rootScope.$on('callToggleEmailSignup', function() {\r\n vm.toggleSignupBox();\r\n });\r\n\r\n vm.toggleSignupBox = function() {\r\n vm.isFormOpen = !vm.isFormOpen;\r\n\r\n if (vm.isFormOpen) {\r\n $rootScope.dataLayer.push({\r\n 'data-category': 'footer_navigation',\r\n 'data-action': 'social-icon',\r\n 'data-label': 'Sign Up For Email',\r\n event: 'silverpop-email-signup',\r\n });\r\n document.querySelector('#email-signup .header').focus();\r\n } else {\r\n document.querySelector('li.social-email-sign-up button').focus();\r\n }\r\n };\r\n\r\n vm.kbHandler = function($event) {\r\n if ($event.altKey || $event.ctrlKey || $event.shiftKey) {\r\n // do nothing\r\n return true;\r\n }\r\n\r\n if ($event.keyCode == keys.space || $event.keyCode == keys.enter) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n vm.toggleSignupBox();\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n vm.dismissSignupBox = function() {\r\n let api_url = '';\r\n if ($scope.enrolled) {\r\n api_url = '/api/EmailSignup/SetEnrolledEmailSignupBar';\r\n } else {\r\n api_url = '/api/EmailSignup/SetClosedEmailSignupBar';\r\n }\r\n\r\n $http({\r\n method: 'GET',\r\n url: api_url,\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .then(function(data) {\r\n console.log('success data:', data.data);\r\n })\r\n .catch(function(data) {\r\n console.log('error data:', data.data);\r\n });\r\n\r\n $rootScope.dataLayer.push({\r\n 'data-category': 'email_signup',\r\n 'data-action': 'close',\r\n 'data-label': 'Dismiss Email Signup',\r\n event: 'silverpop-email-dismiss',\r\n });\r\n\r\n $element.remove();\r\n };\r\n\r\n window.addEventListener('message', receiveMessage, fail);\r\n\r\n function receiveMessage(message) {\r\n if (message.data == 'enrolled') {\r\n $scope.enrolled = true;\r\n }\r\n if (message.data == 'done') {\r\n vm.dismissSignupBox();\r\n }\r\n }\r\n\r\n function fail() {\r\n console.log('fail');\r\n }\r\n}\r\nemailSignupController.$inject = [\r\n '$scope',\r\n '$element',\r\n '$sce',\r\n '$http',\r\n '$rootScope',\r\n];\r\napp.controller('emailSignupController', emailSignupController);\r\n","/*\r\n * historical-pricing-lookup.js\r\n * Javascript file to manage the historical pricing lookup from investor data feed\r\n */\r\n\r\nfunction historicalPricingLookupController(\r\n $scope,\r\n $element,\r\n $rootScope,\r\n $window,\r\n $http,\r\n $timeout,\r\n) {\r\n let $el = $element;\r\n let initData = true;\r\n\r\n $scope.historicalPriceLookup = {\r\n date: '',\r\n };\r\n $scope.dataResponse = {\r\n endDate: '',\r\n startDate: '',\r\n value: '',\r\n };\r\n\r\n $scope.data = {\r\n loaded: true,\r\n error: false,\r\n };\r\n $scope.months = [];\r\n\r\n $scope.setOptionItems = function(optionsData) {\r\n let items = [];\r\n for (let i = 0; i < optionsData.length; i++) {\r\n let item = {\r\n id: i,\r\n value: i,\r\n text: optionsData[i],\r\n type: 'month-select',\r\n };\r\n items.push(item);\r\n }\r\n return items;\r\n };\r\n\r\n $scope.getHistoricalLookupData = function() {\r\n $scope.data.loaded = false;\r\n let dataObj = {};\r\n\r\n if (initData) {\r\n let date = new Date();\r\n date.setDate(date.getDate() - 1);\r\n\r\n let month_string = (date.getMonth() + 1).toString();\r\n let day_string = date.getDate().toString();\r\n let year_string = date.getFullYear().toString();\r\n\r\n dataObj.date = month_string + '/' + day_string + '/' + year_string;\r\n if (month_string.length == 1) {\r\n month_string = '0' + month_string;\r\n }\r\n if (day_string.length == 1) {\r\n day_string = '0' + day_string;\r\n }\r\n let date_string = month_string + '/' + day_string + '/' + year_string;\r\n $scope.currentDate = date_string;\r\n } else {\r\n dataObj.date = $scope.historicalPriceLookup.date.replace(/\\s/g, '');\r\n }\r\n\r\n $rootScope\r\n .postService(dataObj, '/api/Datafeeds/GetHistoricalPriceLookupData')\r\n .then(\r\n // Success\r\n function(response) {\r\n if (response.Status == 'OK') {\r\n if (initData) {\r\n $scope.startDate = '01/01/' + response.YearOptions.StartDate; //starDate\r\n $scope.endDate = '12/31/' + response.YearOptions.EndDate; //endDate\r\n if (response.DefaultDate && response.DefaultDate.length > 0) {\r\n $scope.currentDate = response.DefaultDate; //current date\r\n }\r\n\r\n $scope.months = $scope.setOptionItems(response.MonthNames);\r\n initData = false;\r\n } else {\r\n $scope.dataResponse.value = dataObj.date;\r\n }\r\n\r\n $scope.body = response.StockData;\r\n } else {\r\n $scope.data.error = true;\r\n }\r\n\r\n $scope.data.loaded = true;\r\n },\r\n // Error\r\n function(response) {\r\n $scope.data.loaded = true;\r\n $scope.data.error = true;\r\n },\r\n );\r\n };\r\n}\r\n\r\nhistoricalPricingLookupController.$inject = [\r\n '$scope',\r\n '$element',\r\n '$rootScope',\r\n '$window',\r\n '$http',\r\n '$timeout',\r\n];\r\n\r\napp.controller(\r\n 'historicalPricingLookupController',\r\n historicalPricingLookupController,\r\n);\r\n","/*\r\n * historical-pricing.js\r\n * Javascript file to manage historical pricing from investor data feed\r\n */\r\n\r\nfunction historicalPricingController(\r\n $scope,\r\n $rootScope,\r\n $window,\r\n $http,\r\n $timeout,\r\n) {\r\n $scope.chart = {};\r\n\r\n $scope.historicalPricing = {\r\n timeValue: '',\r\n frecuencyValue: '',\r\n compareToValue: '',\r\n };\r\n\r\n $scope.dataObj = {\r\n time: '',\r\n frecuency: '',\r\n compareTo: '',\r\n };\r\n\r\n $scope.initialValues = {\r\n timeValue: '',\r\n frecuencyValue: '',\r\n compareToValue: '',\r\n };\r\n\r\n $scope.chart.loaded = true;\r\n $scope.chart.error = false;\r\n\r\n $scope.updateChart = function() {\r\n $scope.chart.loaded = false;\r\n\r\n $scope.dataObj = {\r\n time:\r\n $scope.historicalPricing.timeValue || $scope.initialValues.timeValue,\r\n frecuency:\r\n $scope.historicalPricing.frecuencyValue ||\r\n $scope.initialValues.frecuencyValue,\r\n compareTo: $scope.historicalPricing.compareToValue || 'None',\r\n };\r\n\r\n $scope.chart.loaded = true;\r\n };\r\n\r\n $scope.setInitialValues = function(time, frecuency, compare) {\r\n $scope.dataObj = {\r\n time: time,\r\n frecuency: frecuency,\r\n compareTo: compare || 'None',\r\n };\r\n\r\n $scope.historicalPricing.timeValue = time;\r\n $scope.historicalPricing.frecuencyValue = frecuency;\r\n $scope.historicalPricing.compareToValue = compare;\r\n\r\n $scope.initialValues.timeValue = time;\r\n $scope.initialValues.frecuencyValue = frecuency;\r\n $scope.initialValues.compareToValue = compare;\r\n };\r\n\r\n $scope.onSelectItem = function() {};\r\n}\r\n\r\nhistoricalPricingController.$inject = [\r\n '$scope',\r\n '$rootScope',\r\n '$window',\r\n '$http',\r\n '$timeout',\r\n];\r\napp.controller('historicalPricingController', historicalPricingController);\r\n","/*\r\n * Duke Energy Smart Assistant Search (DESSA)\r\n * intelliresponse.js\r\n * Javascript file to manage all interaction with the List Components page.\r\n */\r\nfunction intelliresponseController($scope, $rootScope, $sce) {\r\n /* Default Values */\r\n $scope.trustAsHtml = $sce.trustAsHtml;\r\n $scope.responsed = false;\r\n $scope.openIntel = false;\r\n $scope.optionsRadios = null;\r\n $scope.input_search_modal = '';\r\n $scope.input_search = '';\r\n $scope.interfaceID = '';\r\n $scope.question = '';\r\n\r\n // DESSA ENDPOINT\r\n $scope.domain = $rootScope.dessaEndpoint;\r\n\r\n const question_modal = angular.element('#question-modal');\r\n const topten_modal = angular.element('#topten-modal');\r\n\r\n /* Intelliresponse Prototype */\r\n function IntelliresponseServicePrototype(id) {\r\n if (!id) return false;\r\n this.interfaceId = id;\r\n this.top10questions = null;\r\n this.current = {};\r\n\r\n this.setTop10questions = function (data) {\r\n this.top10questions = data;\r\n };\r\n this.clearCurrent = function () {\r\n this.current = {};\r\n };\r\n\r\n this.setCurrentData = function (data) {\r\n this.clearCurrent();\r\n this.current.id = data.id;\r\n this.current.question = data.title;\r\n this.current.questionId = data.questionId;\r\n this.current.responseId = data.responseId;\r\n this.current.source = data.source;\r\n this.updateQuestionTrace(data);\r\n };\r\n\r\n this.updateQuestionTrace = function (data) {\r\n const questionId = data.questionId === undefined ? '' : data.questionId;\r\n const postBody = JSON.stringify({\r\n questionId,\r\n title: data.title,\r\n source: data.source,\r\n interfaceId: data.interfaceId,\r\n });\r\n const questionTraceUrl = `${$scope.domain}/updateQuestionTrace`;\r\n\r\n $rootScope.postService(postBody, questionTraceUrl);\r\n };\r\n }\r\n\r\n $scope.intelliresponse = {};\r\n const base_url = '';\r\n\r\n /* Modal Functions */\r\n $scope.openModal = function (data, origin, origin_source) {\r\n $('#topten-modal').modal('hide');\r\n const question = data;\r\n\r\n let paramObj = {\r\n interfaceId: $scope.intelliresponse.interfaceId,\r\n data: question,\r\n };\r\n const searchUrl = `${$scope.domain}/search`;\r\n\r\n $scope.modal = null;\r\n $scope.responsed = false;\r\n $scope.rating = null;\r\n $scope.input_search_modal = '';\r\n $scope.input_search = '';\r\n $scope.predictive_results = null;\r\n\r\n if (origin === 'ask') {\r\n let sourceId = '1';\r\n\r\n $rootScope.getService(paramObj, searchUrl).then((response) => {\r\n $scope.recomended = response.relatedEntries; // for all the cases\r\n\r\n if (response.exactMatches.length == 1) {\r\n $scope.modal = {};\r\n $scope.modal.type = 'suggested';\r\n\r\n const exactMatch = response.exactMatches[0]; // only one\r\n $scope.modal.title = exactMatch.title;\r\n $scope.modal.search = exactMatch.title;\r\n $scope.modal.body = exactMatch.response;\r\n exactMatch.source = sourceId;\r\n $scope.intelliresponse.setCurrentData(exactMatch);\r\n $scope.question = exactMatch.title;\r\n\r\n return;\r\n }\r\n\r\n if (response.exactMatches.length > 1) {\r\n $scope.modal = {};\r\n $scope.modal.type = 'multiple';\r\n $scope.multiples = response.exactMatches;\r\n return;\r\n }\r\n\r\n if (!response.exactMatches.length && !response.partialMatches.length) {\r\n $scope.modal = {};\r\n $scope.modal.type = 'no answer';\r\n return;\r\n }\r\n\r\n if (!response.exactMatches.length && response.partialMatches.length) {\r\n $scope.modal = {};\r\n $scope.modal.type = 'ambiguous';\r\n\r\n $scope.modal.search = $scope.intelliresponse.current.search;\r\n $scope.modal.partial = response.partialMatches;\r\n }\r\n });\r\n } else if (origin == 'link') {\r\n paramObj = {\r\n interfaceId: $scope.intelliresponse.interfaceId,\r\n data: data.title,\r\n };\r\n let sourceId = origin_source;\r\n $rootScope.getService(paramObj, searchUrl).then((response) => {\r\n const exactMatch = response.exactMatches[0]; // only one\r\n $scope.modal = {};\r\n $scope.modal.type = 'defined';\r\n $scope.modal.title = exactMatch.title;\r\n $scope.modal.body = exactMatch.response;\r\n exactMatch.source = sourceId;\r\n $scope.intelliresponse.setCurrentData(exactMatch);\r\n $scope.recomended = response.relatedEntries;\r\n });\r\n } else if (origin == 'predictive') {\r\n let sourceId = '9';\r\n paramObj = {\r\n interfaceId: $scope.intelliresponse.interfaceId,\r\n data: data.value,\r\n };\r\n $rootScope.getService(paramObj, searchUrl).then((data_response) => {\r\n const exactMatch = data_response.exactMatches[0]; // only one\r\n $scope.modal = {};\r\n $scope.modal.type = 'defined';\r\n $scope.modal.title = exactMatch.title;\r\n $scope.modal.body = exactMatch.response;\r\n exactMatch.source = sourceId;\r\n $scope.intelliresponse.setCurrentData(exactMatch);\r\n $scope.recomended = data_response.relatedEntries;\r\n });\r\n }\r\n $('#question-modal').modal('show');\r\n };\r\n\r\n $scope.sendRadio = function (data) {\r\n $scope.rating = data;\r\n const paramObj = {\r\n interfaceId: $scope.intelliresponse.interfaceId,\r\n requestType: 'RatingRequest',\r\n responseId: $scope.intelliresponse.current.responseId,\r\n rating: $scope.rating,\r\n source: $scope.intelliresponse.current.source,\r\n question: $scope.intelliresponse.current.question,\r\n };\r\n const ratingUrl = `${$scope.domain}/rating`;\r\n\r\n $rootScope.getService(paramObj, ratingUrl).then((response) => {\r\n $scope.responsed = true;\r\n });\r\n };\r\n\r\n angular.element('document').ready(() => {\r\n question_modal.on('shown.bs.modal', () => {\r\n $('body').addClass('modal-open');\r\n });\r\n question_modal.on('hidden.bs.modal', () => {\r\n $('body').css('padding-right', '0px');\r\n });\r\n topten_modal.on('hidden.bs.modal', () => {\r\n $scope.predictive_results = null;\r\n $scope.input_search = '';\r\n });\r\n });\r\n\r\n $scope.openToptenModal = function () {\r\n $scope.input_search = '';\r\n $scope.predictive_results = null;\r\n topten_modal.modal('show');\r\n };\r\n $scope.closeModal = function () {\r\n question_modal.modal('hide');\r\n topten_modal.modal('hide');\r\n };\r\n /* END Modal Functions */\r\n\r\n $scope.checkIntelResults = function () {\r\n if ($scope.input_search.length > 2) {\r\n const searchText = $scope.input_search;\r\n const paramObj = {\r\n data: searchText,\r\n interfaceId: $scope.intelliresponse.interfaceId,\r\n };\r\n const suggestUrl = `${$scope.domain}/dessa-suggest`;\r\n\r\n $rootScope.getService(paramObj, suggestUrl).then((response) => {\r\n $scope.predictive_results = response;\r\n });\r\n } else {\r\n $scope.predictive_results = null;\r\n }\r\n $scope.openIntel = false;\r\n };\r\n\r\n $scope.checkIntelResultsModal = function () {};\r\n\r\n $scope.initProcess = function (id) {\r\n $scope.interfaceID = id;\r\n $scope.intelliresponse = new IntelliresponseServicePrototype(\r\n $scope.interfaceID,\r\n );\r\n\r\n init();\r\n };\r\n\r\n /* Init Function */\r\n let init = function () {\r\n getTop10questions();\r\n };\r\n\r\n let getTop10questions = function () {\r\n const paramObj = {\r\n interfaceId: $scope.interfaceID,\r\n };\r\n const top10Url = `${$scope.domain}/top10`;\r\n $rootScope.getService(paramObj, top10Url).then((response) => {\r\n $scope.intelliresponse.setTop10questions(response.topQuestions);\r\n });\r\n };\r\n}\r\n\r\nintelliresponseController.$inject = ['$scope', '$rootScope', '$sce'];\r\napp.controller('intelliresponseController', intelliresponseController);\r\n","/*\r\n * investor-data-feed.js\r\n * Javascript file to manage all interaction with the Investor data feed page.\r\n */ \r\n\r\nfunction investorStylesController($scope, $rootScope, $window, $http, $timeout) {\r\n/*empty function*/\r\n};\r\n\r\ninvestorStylesController.$inject = ['$scope', '$rootScope', '$window', '$http', '$timeout'];\r\napp.controller('investorStylesController', investorStylesController);\r\n\r\n\r\n","/* latest-news.js\r\n * Angular controller to manage Latest News region selector.\r\n */\r\n\r\nfunction latestNewsController($scope, $element, $q, $http, $timeout) {\r\n $http.defaults.headers.post['Content-Type'] =\r\n 'application/x-www-form-urlencoded;charset=utf-8';\r\n\r\n $httpProvider.useApplyAsync(true);\r\n\r\n let vm = this;\r\n\r\n // Initialize region here\r\n vm.selectedRegion = null;\r\n vm.dropdownText = '';\r\n vm.regionalNews = [];\r\n vm.regionList = [];\r\n\r\n let latestNewsService = function(service, dataObject) {\r\n let deferred = $q.defer(),\r\n dataObj = dataObject || {},\r\n ajaxObj = {};\r\n\r\n switch (service) {\r\n case 'getNews':\r\n ajaxObj.serviceName = 'GetRegionNews';\r\n ajaxObj.method = 'POST';\r\n break;\r\n case 'getRegions':\r\n ajaxObj.serviceName = 'GetRegions';\r\n ajaxObj.method = 'GET';\r\n break;\r\n default:\r\n ajaxObj.serviceName = null;\r\n\r\n break;\r\n }\r\n\r\n $http({\r\n method: ajaxObj.method,\r\n url: '/api/LatestNews/' + ajaxObj.serviceName,\r\n data: dataObj,\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .then(function(data) {\r\n deferred.resolve(data.data);\r\n })\r\n .catch(function(data) {\r\n deferred.reject('There was an error.');\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n\r\n\r\n vm.status = {\r\n isopen: false,\r\n };\r\n\r\n vm.toggled = function(open) {};\r\n\r\n vm.selectRegion = function($event, defaultRegion) {\r\n let stateCode;\r\n\r\n if (!defaultRegion) {\r\n stateCode = angular.element($event.target).data('code');\r\n vm.dropdownText = angular.element($event.target).html();\r\n } else {\r\n stateCode = defaultRegion.code;\r\n vm.dropdownText = defaultRegion.name;\r\n }\r\n\r\n vm.getNews(stateCode);\r\n\r\n vm.status.isopen = false;\r\n\r\n angular.element('#news-update').html('New content loaded below.');\r\n angular.element('#region-selector').focus();\r\n $timeout(function() {\r\n angular.element('#news-update').html('');\r\n }, 2000);\r\n };\r\n\r\n vm.getNews = function(stateCode) {\r\n let dataObj = {\r\n state: stateCode,\r\n };\r\n\r\n latestNewsService('getNews', dataObj).then(\r\n // Success\r\n function(response) {\r\n vm.regionalNews = response.news;\r\n },\r\n // Error\r\n function(response) {},\r\n );\r\n };\r\n\r\n vm.getRegions = function() {\r\n latestNewsService('getRegions').then(\r\n // Success\r\n function(response) {\r\n vm.regionList = response.regions;\r\n if (response.selected) {\r\n vm.selectRegion(null, response.selected);\r\n } else {\r\n vm.dropdownText = 'Select Your Region';\r\n }\r\n },\r\n // Error\r\n function(response) {},\r\n );\r\n };\r\n\r\n vm.timeTagFormat = function(dateString) {\r\n let splitDate = dateString.split('/');\r\n return splitDate[2] + '-' + splitDate[0] + '-' + splitDate[1]; //yyyy-MM-dd\r\n };\r\n}\r\nlatestNewsController.$inject = [\r\n '$scope',\r\n '$element',\r\n '$q',\r\n '$http',\r\n '$timeout',\r\n];\r\napp.controller('latestNewsController', latestNewsController);\r\n","function ModalSlideShowController($scope, $element, $document, $templateCache) {\r\n let modalWindow = angular.element(document.querySelector('.modal-slideshow')),\r\n modalImages,\r\n modalNextButton;\r\n\r\n $scope.dataLabelH3 = null;\r\n $scope.textTitle = function (value) {\r\n $scope.dataLabelH3 = value;\r\n }\r\n\r\n $document.ready(function () {\r\n modalImages = angular.element(modalWindow.find('img'));\r\n modalNextButton = angular.element(modalWindow.find('.right'));\r\n\r\n modalImages.on('click', function () {\r\n modalNextButton.click();\r\n });\r\n });\r\n\r\n $scope.$watch(function () {\r\n let text = angular.element(\".carousel-slideshow .carousel-indicators li.active\").text(),\r\n currentSlide = angular.element(\".carousel-slideshow .carousel-indicators li.active\").text().split(/['of']/);\r\n angular.element(\".carousel-slideshow .slideshow-slide.active .slideshow-indicators\").text(text);\r\n $scope.currentSlideNumber = currentSlide[0].substring(-1);\r\n\r\n let slideHeadline = $element.find(\".slideshow-slide.active h3\").text();\r\n $element.find(\".carousel-control\").attr(\"data-label\", slideHeadline);\r\n\r\n });\r\n\r\n $templateCache.put(\"template/carousel/carousel.html\", \"
\\n\" +\r\n \"
    1\\\">\\n\" +\r\n \"
  1. {{$index + 1}} of {{slides.length}}
  2. \\n\" +\r\n \"
\\n\" +\r\n \"
\\n\" +\r\n \" 1\\\">\\n\" +\r\n \" 1\\\">\\n\" +\r\n \"
\\n\" +\r\n \"\");\r\n};\r\n\r\nModalSlideShowController.$inject = ['$scope', '$element', '$document', '$templateCache'];\r\napp.controller('ModalSlideShowController', ModalSlideShowController);","/*\r\n * Modal.js\r\n * File to manage the modals of the site\r\n */\r\n\r\n\r\n// Modal Instance\r\nfunction ModalInstanceCtrl($scope, $modalInstance) {\r\n\r\n $scope.ok = function () {\r\n $modalInstance.close();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $modalInstance.dismiss('cancel');\r\n\r\n };\r\n\r\n $scope.init = function () {\r\n\r\n var multicolumnBody = $('.modal-wrapper');\r\n\r\n if (multicolumnBody.length > 0) {\r\n var containers = multicolumnBody[0].getElementsByClassName('container');\r\n\r\n while (containers.length != 0) {\r\n angular.element(containers[containers.length - 1]).removeClass(\"container\");\r\n }\r\n }\r\n\r\n\r\n }\r\n};\r\nModalInstanceCtrl.$inject = ['$scope', '$modalInstance'];\r\napp.controller('ModalInstanceCtrl', ModalInstanceCtrl);\r\n\r\n","/* multicolumn.js\r\n* Angular controller to manage all interaction with the multicolumn components.\r\n*/\r\n\r\nfunction multicolumnController($scope, $element) {\r\n\r\n\r\n $scope.init = function () {\r\n\r\n var multicolumnBody = $element.find('.multicolum-body');\r\n\r\n if (multicolumnBody.length > 0) {\r\n var containers = multicolumnBody[0].getElementsByClassName('container');\r\n\r\n while (containers.length != 0) {\r\n angular.element(containers[containers.length - 1]).removeClass(\"container\");\r\n }\r\n }\r\n\r\n\r\n }\r\n};\r\nmulticolumnController.$inject = ['$scope', '$element'];\r\napp.controller('multicolumnController', multicolumnController);","/*\r\n * news-and-resouces.js\r\n * Javascript file to manage all interaction with the home page.\r\n */\r\n\r\n\r\nfunction newsAndResourcesController($scope, $filter, $http, $timeout, $element, $q) {\r\n var filter = $filter('filter');\r\n var orderBy = $filter('orderBy');\r\n var limitTo = $filter('limitTo');\r\n var $el = $element;\r\n $scope.bodyData = \"\";\r\n $scope.filteredItems = [];\r\n $scope.totalFilterResults = 0;\r\n $scope.showLimit = '';\r\n $scope.maxShowLimit = '';\r\n $scope.sortColumn = {\r\n orderBy: 'a.Text',\r\n descending: true\r\n };\r\n $scope.items = [{ id: 0, value: \"\", text: \"\" }];\r\n\r\n $scope.table = \".news-resources .custom-table\";\r\n $scope.showAllMsg = \"\";\r\n $scope.showLessMsg = \"\";\r\n $scope.sort = false;\r\n $scope.currentCol = 0;\r\n $scope.headers = [];\r\n $scope.data = {\r\n loaded: true,\r\n error: false\r\n };\r\n\r\n var keys = {\r\n tab: 9,\r\n enter: 13,\r\n esc: 27,\r\n space: 32,\r\n left: 37,\r\n right: 39,\r\n }\r\n\r\n var showButtonState = {\r\n open: {\r\n text: 'SHOW LESS',\r\n icon: 'caret-arrow-up'\r\n },\r\n closed: {\r\n text: 'SHOW MORE',\r\n icon: 'caret-arrow-down'\r\n }\r\n }\r\n\r\n $scope.$on('tableheaders_loaded', function (e) {\r\n e.stopPropagation();\r\n $scope.headers = angular.element(\".custom-table th\");\r\n var columnHead = $scope.headers[$scope.columnIndex];\r\n var el = angular.element(columnHead);\r\n angular.element(el).attr('aria-sort', (($scope.sortOrder === 'desc') ? 'descending' : 'ascending'));\r\n angular.element($scope.headers[0]).attr('tabindex', '0');\r\n });\r\n\r\n $scope.isShowButtonOpen = false;\r\n $scope.showButton = showButtonState.closed;\r\n\r\n var NewsAndResourcesService = function (val) {\r\n var deferred = $q.defer();\r\n var dataObj = {\r\n value: val\r\n };\r\n\r\n $http({\r\n method: 'POST',\r\n url: '/api/NewsAndResources/GetResources',\r\n headers: { 'Content-Type': 'application/json' },\r\n data: dataObj\r\n })\r\n .then(function (data) {\r\n deferred.resolve(data.data)\r\n })\r\n .catch(function (data) {\r\n deferred.reject('There was an error.')\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n $scope.sortable = function (sort, sortOrder, columnIndex, limit) {\r\n // TODO: This could be done in response success. No need to add watchers if it won't be changing\r\n $scope.$watch('bodyData', function handleBodyDataChange(newValue, oldValue) {\r\n if ($scope.bodyData.length > 0) {\r\n $scope.setSortableTable(sort, sortOrder, columnIndex, limit, $scope.bodyData);\r\n\r\n $timeout(function () {\r\n var columnHead = angular.element($scope.table + \" th\")[$scope.columnIndex];\r\n var el = angular.element(columnHead);\r\n\r\n el.addClass('active');\r\n $scope.addSortIndicator($scope.sortOrder, el);\r\n $scope.paintSelectedColumn($scope.columnIndex);\r\n\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.getResources = function (val) {\r\n $scope.data.loaded = false;\r\n NewsAndResourcesService(val).then(\r\n // Success\r\n function (response) {\r\n if (response.Status && response.Status == \"OK\") {\r\n $scope.items = $scope.setOptionItems(response.FilterOptions);\r\n $scope.tableHead = response.Columns;\r\n\r\n if (response.Resources && response.Resources.length > 0) {\r\n $scope.bodyData = response.Resources.map(function (item) {\r\n item.c = Date.parse(item.c);\r\n return item;\r\n });\r\n\r\n $scope.noData = false;\r\n\r\n } else {\r\n $scope.noData = true;\r\n }\r\n } else {\r\n $scope.data.error = true;\r\n }\r\n $scope.data.loaded = true;\r\n },\r\n // Error\r\n function (response) {\r\n $scope.data.loaded = true;\r\n $scope.data.error = true;\r\n }\r\n );\r\n };\r\n\r\n $scope.setOptionItems = function (optionsData) {\r\n var items = [];\r\n for (var i = 0; i < optionsData.length; i++) {\r\n\r\n var item = { id: i+1, value: optionsData[i], text: optionsData[i] };\r\n items.push(item);\r\n\r\n }\r\n items.unshift({ id: 0, value: \"All\", text: \"All\" });\r\n return items;\r\n };\r\n\r\n $scope.setSortableTable = function (sort, sortOrder, columnIndex, limit, tableData) {\r\n $scope.maxShowLimit = $scope.showLimit = limit;\r\n $scope.sort = sort;\r\n // TODO: Is $scope.sort needed? Currently it ALWAYS enters the next block because parameter is always 'true'.\r\n if ($scope.sort == true) {\r\n $scope.sortColumn.descending = (sortOrder === 'desc') ? true : false;\r\n $scope.sortColumn.orderBy = $scope.getColumnKey(columnIndex);\r\n if ($scope.sortColumn.orderBy == 'a') {\r\n $scope.sortColumn.orderBy = 'a.Text';\r\n }\r\n $scope.columnIndex = columnIndex;\r\n $scope.filterResults();\r\n }\r\n };\r\n\r\n $scope.getColumnKey = function (index) {\r\n var keys = Object.keys($scope.bodyData[0]);\r\n return keys[index];\r\n };\r\n\r\n $scope.sortColumnBy = function (columnKey, index, event) {\r\n // TODO: Is $scope.sort needed? Currently it ALWAYS enters the next block because parameter is always 'true'.\r\n if ($scope.sort == true) {\r\n var el = angular.element(event.currentTarget);\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '-1');\r\n $scope.currentCol = index;\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '0');\r\n\r\n $scope.columnIndex = index;\r\n $scope.sortColumn.descending = (el.hasClass(\"desc\")) ? true : false;\r\n\r\n $scope.changeSorting(columnKey, el);\r\n\r\n }\r\n };\r\n\r\n $scope.changeSorting = function (columnKey, columnHeader) {\r\n\r\n var currentColumn = $scope.sortColumn.orderBy;\r\n if (currentColumn == 'a.Text') {\r\n currentColumn = 'a';\r\n }\r\n\r\n $scope.sortColumn.descending = (currentColumn === columnKey) ? !$scope.sortColumn.descending : false;\r\n $scope.sortColumn.orderBy = columnKey;\r\n\r\n if ($scope.sortColumn.orderBy == 'a') {\r\n $scope.sortColumn.orderBy = 'a.Text';\r\n }\r\n\r\n $scope.filterResults();\r\n\r\n angular.element($scope.table + \" td, \" + $scope.table + \" th\").removeClass(\"active\");\r\n angular.element($scope.headers).attr('aria-sort', 'none');\r\n columnHeader.addClass('active');\r\n $timeout(function () {\r\n $scope.paintSelectedColumn($scope.columnIndex);\r\n $scope.addSortIndicator($scope.sortColumn.descending, columnHeader);\r\n });\r\n };\r\n\r\n\r\n $scope.addSortIndicator = function (descending, columnHeader) {\r\n angular.element(\".asc\").removeClass(\"asc\").addClass(\"desc\");\r\n if (!descending) {\r\n columnHeader.removeClass('desc').addClass('asc');\r\n columnHeader.attr('aria-sort', 'ascending');\r\n } else {\r\n columnHeader.removeClass('asc').addClass('desc');\r\n columnHeader.attr('aria-sort', 'descending');\r\n }\r\n };\r\n\r\n $scope.paintSelectedColumn = function (index) {\r\n\r\n var trs = angular.element($scope.table + \" tr\");\r\n var tds = trs.find(\"td:eq(\" + index + \")\");\r\n tds.addClass(\"active\");\r\n };\r\n\r\n\r\n $scope.setShowLabels = function (showMoreLabel, showLessLabel) {\r\n showButtonState.closed.text = showMoreLabel;\r\n showButtonState.open.text = showLessLabel;\r\n };\r\n\r\n $scope.toggleMoreInfo = function () {\r\n $scope.isShowButtonOpen = !$scope.isShowButtonOpen;\r\n\r\n if ($scope.isShowButtonOpen) {\r\n $scope.showLimit = '';\r\n $scope.showButton = showButtonState.open;\r\n }\r\n else {\r\n $scope.showLimit = $scope.maxShowLimit;\r\n $scope.showButton = showButtonState.closed;\r\n }\r\n\r\n $scope.filterResults();\r\n\r\n $timeout(function () {\r\n $scope.paintSelectedColumn($scope.columnIndex);\r\n });\r\n };\r\n\r\n $scope.filterResults = function () {\r\n var temp = [];\r\n var limits = 'limits: ';\r\n\r\n if ($scope.filterOption) {\r\n limits += 'filter (' + $scope.filterOption + '); ';\r\n temp = filter($scope.bodyData, $scope.filterOption, false);\r\n }\r\n else {\r\n temp = $scope.bodyData;\r\n }\r\n\r\n if ($scope.sortColumn.orderBy) {\r\n limits += 'order (' + $scope.sortColumn.orderBy + '); ';\r\n temp = orderBy(temp, $scope.sortColumn.orderBy, $scope.sortColumn.descending);\r\n }\r\n\r\n $scope.totalFilterResults = temp.length;\r\n\r\n if ($scope.showLimit) {\r\n limits += 'limit (' + $scope.showLimit + ');';\r\n temp = limitTo(temp, $scope.showLimit);\r\n }\r\n\r\n $scope.filteredItems = temp;\r\n }\r\n\r\n $scope.onSelectItem = function (item) {\r\n $scope.data.loaded = false;\r\n\r\n if (item.text == \"All\") {\r\n $scope.filterOption = '';\r\n }\r\n else {\r\n $scope.filterOption = item.text;\r\n }\r\n\r\n $scope.data.loaded = true;\r\n $scope.filterResults();\r\n $timeout(function () {\r\n $scope.paintSelectedColumn($scope.columnIndex);\r\n });\r\n };\r\n\r\n $scope.keyboardHandler = function ($event, $index) {\r\n if ($event.altKey || $event.ctrlKey || $event.shiftKey) {\r\n // do nothing\r\n return true;\r\n }\r\n\r\n switch ($event.keyCode) {\r\n case keys.left:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '-1');\r\n if ($scope.currentCol == 0) {\r\n $scope.currentCol = $scope.headers.length;\r\n }\r\n $scope.currentCol = $scope.currentCol - 1;\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '0');\r\n angular.element($scope.headers[$scope.currentCol]).focus();\r\n break;\r\n case keys.right:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '-1');\r\n $scope.currentCol = $index + 1;\r\n if ($scope.currentCol == $scope.headers.length) {\r\n $scope.currentCol = 0;\r\n }\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '0');\r\n angular.element($scope.headers[$scope.currentCol]).focus();\r\n break;\r\n case keys.space:\r\n case keys.enter:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n $scope.sortColumnBy($scope.getColumnKey($index), $index, $event);\r\n break;\r\n default:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n};\r\nnewsAndResourcesController.$inject = ['$scope', '$filter', '$http', '$timeout', '$element', '$q'];\r\napp.controller('newsAndResourcesController', newsAndResourcesController);\r\n\r\n","function popoverController(\r\n $scope,\r\n $sce,\r\n $window,\r\n $element,\r\n $cookies,\r\n $http,\r\n $parent,\r\n) {\r\n $scope.popoverTrigger = $element.find('.duke-popover-trigger');\r\n var popoverExecute = $element.find('.info-tooltip-low');\r\n if (\r\n $scope.popoverTrigger.popover &&\r\n typeof $scope.popoverTrigger.popover === 'function'\r\n ) {\r\n $scope.popoverTrigger.popover();\r\n }\r\n\r\n $element.find('.duke-popover-trigger').focusout(function() {\r\n $element.find('.duke-popover-trigger').click();\r\n });\r\n\r\n $scope.placementPositionStr = 'right';\r\n angular.element('document').ready(function(context, source) {\r\n var width = angular.element(window).width();\r\n if (width <= 767) {\r\n $scope.placementPositionStr = 'bottom|center';\r\n }\r\n $scope.$apply();\r\n });\r\n}\r\npopoverController.$inject = [\r\n '$scope',\r\n '$sce',\r\n '$window',\r\n '$element',\r\n '$cookies',\r\n '$http',\r\n];\r\napp.controller('popoverController', popoverController);\r\n","/*\r\n * Angular controller\r\n * pushdownCtrl manage the pushdown panel componentPanel\r\n *\r\n */\r\n\r\nfunction pushdownCtrl($scope, $window, $timeout) {\r\n $scope.parentID = '';\r\n $scope._activePanel = false;\r\n $scope.relativeURL = $window.location.pathname;\r\n $scope.current = 0;\r\n var $globalIndicator = {};\r\n $scope.btn_type = 'small';\r\n var width = angular.element(window).width();\r\n var $container;\r\n $scope.setParentID = function(value) {\r\n $scope.parentID = value;\r\n };\r\n\r\n if (width > 768) {\r\n $scope.btn_type = 'medium';\r\n }\r\n\r\n var getBackgroundColor = function(panel) {\r\n var styles = $window.getComputedStyle(panel, '');\r\n var color = styles.getPropertyValue('background-color');\r\n if (color == 'rgba(0, 0, 0, 0)' || color == 'rgb(255, 255, 255)') {\r\n $container[0].classList.add('shaded-bg');\r\n panel.classList.add('shaded-bg');\r\n panel.classList.remove('white-bg');\r\n color = 'rgb(242, 244, 244)';\r\n }\r\n return color;\r\n };\r\n\r\n var setIndicatorColor = function(indicator, color) {\r\n indicator.style.borderBottomColor = color;\r\n };\r\n\r\n $scope.activePanel = function(item, $event, containerID) {\r\n var panels = angular.element('#' + containerID + ' .animate-show');\r\n $scope.current = item;\r\n\r\n $globalIndicator = angular.element('#' + containerID + ' .indicator')[\r\n $scope.current - 1\r\n ];\r\n\r\n $container = angular.element(panels[$scope.current - 1]);\r\n\r\n setIndicatorColor(\r\n $globalIndicator,\r\n getBackgroundColor($container.children().eq(0)[0]),\r\n );\r\n\r\n if (!$container.hasClass('currentPush')) {\r\n $scope._activePanel = true;\r\n panels.removeClass('currentPush');\r\n angular.element($globalIndicator).removeClass('hide');\r\n $container.addClass('currentPush');\r\n }\r\n };\r\n\r\n $scope.resetPush = function(containerID) {\r\n var panels = angular.element('#' + containerID + ' .animate-show');\r\n panels.removeClass('currentPush');\r\n angular.element($globalIndicator).addClass('hide');\r\n $scope._activePanel = false;\r\n };\r\n}\r\npushdownCtrl.$inject = ['$scope', '$window', '$timeout'];\r\napp.controller('pushdownCtrl', pushdownCtrl);\r\n","/*\r\n * search-paginator.js\r\n * Javascript file to manage all interaction with the search pagination.\r\n */\r\n\r\nfunction searchPaginationCtrl(\r\n $scope,\r\n $location,\r\n $anchorScroll,\r\n $sce,\r\n $rootScope,\r\n $templateCache,\r\n $timeout,\r\n) {\r\n var vm = $scope;\r\n\r\n vm.searchResultsJson = [];\r\n vm.searchResultsJson = vm.searchResultsJson[0];\r\n vm.customerTypeResidential = '_';\r\n vm.customerTypeBusiness = '_';\r\n vm.resId = '';\r\n vm.busId = '';\r\n vm.initId = '';\r\n vm.resultsperpage = '';\r\n vm.searchInputTextAnalytics = null;\r\n $scope.trustAsHtml = $sce.trustAsHtml;\r\n $scope.maxSize = 5;\r\n $scope.interfaceId = '';\r\n vm.initialLoaded = false;\r\n\r\n $scope.domain = $rootScope.dessaEndpoint;\r\n\r\n document\r\n .getElementById('search-results')\r\n .addEventListener('mousedown', event => {\r\n const target = event.target;\r\n const paginationParent = target.parentNode.parentNode;\r\n let pageNumber;\r\n if (paginationParent.classList.contains('pagination')) {\r\n pageNumber = target.innerText;\r\n if (isNaN(Number(pageNumber))) {\r\n const activePage = Number(\r\n document.querySelector('.pagination .active').innerText,\r\n );\r\n pageNumber =\r\n target.innerText === 'Next' ? activePage + 1 : activePage - 1;\r\n }\r\n vm.dataLayerPush(\r\n 'search_results_scroll',\r\n `Page | ${pageNumber}`,\r\n vm.searchInputText,\r\n );\r\n }\r\n });\r\n\r\n function DessaService(id, id2) {\r\n if (!id) return false;\r\n\r\n this.interfaceId = id;\r\n this.interfaceId2 = id2;\r\n this.top10questions = null;\r\n this.current = {};\r\n\r\n this.setTop10questions = function(data) {\r\n this.top10questions = data;\r\n };\r\n\r\n this.clearCurrent = function() {\r\n this.current = {};\r\n };\r\n\r\n this.setCurrentData = function(data) {\r\n this.clearCurrent();\r\n this.current.id = data.id;\r\n this.current.question = data.title;\r\n this.current.questionId = data.questionId;\r\n this.current.responseId = data.responseId;\r\n this.current.source = data.source;\r\n this.current.traceId = data.traceId;\r\n };\r\n }\r\n\r\n $scope.dessa = {};\r\n // var base_url = '';\r\n\r\n $scope.predictive_results = null;\r\n\r\n vm.showSuggestedResults = true;\r\n vm.totalItems = 0;\r\n vm.firstResult = 0;\r\n vm.lastResult = 0;\r\n vm.itemsPerPage = 0;\r\n vm.commonSearchTitle = null;\r\n vm._recommendedResults = false;\r\n vm._commonSearches = false;\r\n vm._moreResults = false;\r\n $anchorScroll.yOffset = 81;\r\n\r\n $scope.initProcess = function(id, id2) {\r\n $scope.interfaceId = id;\r\n $scope.interfaceId2 = id2;\r\n vm.initId = id;\r\n $scope.dessa = new DessaService($scope.interfaceId, $scope.interfaceId2);\r\n // timeout so checkbox values are picked up\r\n $timeout(function() {\r\n if (vm.customerTypeBusiness === 'BUSINESS') {\r\n vm.busId = id;\r\n vm.resId = id2;\r\n } else {\r\n vm.resId = id;\r\n vm.busId = id2;\r\n }\r\n\r\n vm.getPredictiveResults();\r\n }, 0);\r\n };\r\n\r\n /**Function to hide the tittle*/\r\n vm.titleHide = function() {\r\n vm.relatedQuestionsTitle = null;\r\n vm.commonSearchTitle = null;\r\n vm.recommendedResultsTitle = null;\r\n vm.moreResultsTitle = null;\r\n };\r\n\r\n vm.dataObj = {};\r\n\r\n vm.safeApply = function(fn) {\r\n var phase = this.$root.$$phase;\r\n if (phase === '$apply' || phase === '$digest') {\r\n if (fn && typeof fn === 'function') {\r\n fn();\r\n }\r\n } else {\r\n this.$apply(fn);\r\n }\r\n };\r\n\r\n vm.pageChanged = function(searchText) {\r\n if (vm.pagination.currentPage == 1) {\r\n vm.showSuggestedResults = true;\r\n } else {\r\n vm.showSuggestedResults = false;\r\n }\r\n if (!searchText) {\r\n return false;\r\n } else {\r\n vm.dataObj = {\r\n searchInputText: searchText,\r\n interfaceId: $scope.dessa.interfaceId,\r\n customerTypeFilter: vm.dataObj.customerTypeFilter,\r\n currentPage: vm.pagination.currentPage,\r\n realCount: false,\r\n };\r\n\r\n var pageChangedUrl = '/api/SearchResults/Search';\r\n var pageChangedResponse = $rootScope.postService(\r\n vm.dataObj,\r\n pageChangedUrl,\r\n );\r\n\r\n pageChangedResponse.then(\r\n function(data) {\r\n vm.searchResultsJson = data;\r\n if (\r\n !vm.searchResultsJson.isUndefined &&\r\n !vm.searchResultsJson.isNotNull\r\n ) {\r\n vm.pagination.currentPage =\r\n vm.searchResultsJson.MoreResults.CurrentPage;\r\n vm.firstResult = vm.searchResultsJson.MoreResults.FirstItemIndex;\r\n vm.lastResult = vm.searchResultsJson.MoreResults.LastItemIndex;\r\n vm.safeApply();\r\n return vm.searchResultsJson;\r\n }\r\n },\r\n function(data) {},\r\n );\r\n }\r\n $location.hash('search-results');\r\n $anchorScroll();\r\n $location.hash('');\r\n };\r\n\r\n vm.sendQueryString = function($event) {\r\n vm.pagination = { currentPage: 1 };\r\n if (!vm.searchInputText) {\r\n return false;\r\n } else {\r\n if ($event) {\r\n if ($event.type === 'click' || $event.type === 'touchend') {\r\n $scope.dataLayerPush(\r\n 'search',\r\n dataObj.searchInputText,\r\n 'search-secondary-|-' + pagination.currentPage,\r\n );\r\n }\r\n }\r\n\r\n vm.dataObj = {\r\n searchInputText: vm.searchInputText,\r\n customerTypeFilter: '',\r\n interfaceId: $scope.dessa.interfaceId,\r\n currentPage: vm.pagination.currentPage,\r\n realCount: true,\r\n };\r\n\r\n if (\r\n (vm.customerTypeResidential === 'RESIDENTIAL' &&\r\n vm.customerTypeBusiness === 'BUSINESS') ||\r\n (vm.customerTypeResidential === '_' && vm.customerTypeBusiness === '_')\r\n ) {\r\n vm.dataObj.customerTypeFilter = 'ALL';\r\n vm.dataObj.interfaceId = vm.initId;\r\n $scope.dessa.interfaceId = vm.initId;\r\n } else {\r\n vm.dataObj.customerTypeFilter =\r\n vm.customerTypeResidential + vm.customerTypeBusiness;\r\n\r\n if (vm.customerTypeResidential === 'RESIDENTIAL') {\r\n vm.dataObj.interfaceId = vm.resId;\r\n $scope.dessa.interfaceId = vm.resId;\r\n }\r\n if (vm.customerTypeBusiness === 'BUSINESS') {\r\n vm.dataObj.interfaceId = vm.busId;\r\n $scope.dessa.interfaceId = vm.busId;\r\n }\r\n }\r\n\r\n var sendQueryStringUrl = '/api/SearchResults/Search';\r\n var sendQueryStringResponse = $rootScope.postService(\r\n vm.dataObj,\r\n sendQueryStringUrl,\r\n );\r\n\r\n sendQueryStringResponse.then(\r\n function(data) {\r\n vm.searchResultsJson = data;\r\n vm.initialLoaded = true;\r\n if (\r\n !vm.searchResultsJson.isUndefined &&\r\n !vm.searchResultsJson.isNotNull\r\n ) {\r\n vm.totalItems = vm.searchResultsJson.MoreResults.TotalResultCount;\r\n vm.firstResult = vm.searchResultsJson.MoreResults.FirstItemIndex;\r\n vm.lastResult = vm.searchResultsJson.MoreResults.LastItemIndex;\r\n vm.pagination = { currentPage: 1 };\r\n\r\n // Safely access various ResultItems, default to empty array\r\n vm.recommendedResults =\r\n (vm.searchResultsJson.RecommendedResults &&\r\n vm.searchResultsJson.RecommendedResults.ResultItems) ||\r\n [];\r\n\r\n vm.commonSearchResults =\r\n (vm.searchResultsJson.CommonSearches &&\r\n vm.searchResultsJson.CommonSearches.ResultItems) ||\r\n [];\r\n\r\n vm.moreResults =\r\n (vm.searchResultsJson.MoreResults &&\r\n vm.searchResultsJson.MoreResults.ResultItems) ||\r\n [];\r\n\r\n if (vm.recommendedResults.length > 0) {\r\n vm._recommendedResults = true;\r\n } else {\r\n vm._recommendedResults = false;\r\n }\r\n if (vm.commonSearchResults.length > 0) {\r\n vm._commonSearches = true;\r\n } else {\r\n vm._commonSearches = false;\r\n }\r\n if (vm.moreResults.length > 0) {\r\n vm._moreResults = true;\r\n } else {\r\n vm._moreResults = false;\r\n }\r\n vm.safeApply();\r\n return vm.searchResultsJson;\r\n }\r\n },\r\n function(data) {},\r\n );\r\n if ($scope.dessa.interfaceId) {\r\n vm.getPredictiveResults();\r\n }\r\n }\r\n };\r\n\r\n vm.dataLayerPush = function(dataCategory, dataAction, dataLabel) {\r\n const category = dataCategory;\r\n const action = dataAction;\r\n const label = dataLabel;\r\n const eventClick = 'event-click';\r\n\r\n const data = {\r\n 'event-category': category,\r\n 'event-label': label,\r\n 'event-action': action,\r\n event: eventClick,\r\n };\r\n if (dataLayer) {\r\n dataLayer.push(data);\r\n }\r\n };\r\n\r\n $scope.vpvDataLayerPush = function(dataName) {\r\n const vpvName = dataName;\r\n const vpv = {\r\n event: 'send-VPV',\r\n 'vpv-name': '/vpv/search/related-question-answer-found',\r\n };\r\n if (dataLayer) {\r\n dataLayer.push(vpv);\r\n }\r\n };\r\n\r\n vm.getPredictiveResults = function() {\r\n if (vm.searchInputText.length > 3) {\r\n var searchText = vm.searchInputText;\r\n var paramObj = {\r\n data: searchText,\r\n interfaceId: $scope.dessa.interfaceId,\r\n };\r\n var suggestUrl = $scope.domain + '/dessa-suggest';\r\n $rootScope.getService(paramObj, suggestUrl).then(function(response) {\r\n $scope.predictive_results = response;\r\n });\r\n } else {\r\n $scope.predictive_results = null;\r\n }\r\n };\r\n\r\n vm.sendCommonSearch = function(commonSearch) {\r\n if (!commonSearch) {\r\n return false;\r\n } else {\r\n vm.searchPlaceholder = commonSearch;\r\n vm.searchInputText = commonSearch;\r\n vm.sendQueryString(commonSearch);\r\n }\r\n };\r\n\r\n vm.searchByQueryString = function(searchInput) {\r\n vm.searchInputText = null;\r\n searchInput = getSearchParameter('searchInput');\r\n if (!searchInput) {\r\n return false;\r\n } else {\r\n vm.searchInputText = decodeURIComponent(searchInput);\r\n vm.sendQueryString(vm.searchInputText);\r\n }\r\n function getSearchParameter(searchInput) {\r\n var pageUrl = window.location.search.substring(1),\r\n pageUrlVariable = pageUrl.split(/[&][?]/),\r\n result;\r\n for (var count = 0; count < pageUrlVariable.length; count += 1) {\r\n var searchParam = pageUrlVariable[count],\r\n stringSearchParam = (searchParam || '').split('=');\r\n if (stringSearchParam[0] == searchInput) {\r\n result = stringSearchParam[1];\r\n }\r\n }\r\n return result;\r\n }\r\n };\r\n\r\n $scope.closeModal = function() {\r\n $('#search-modal').modal('hide');\r\n const questionHeader = $scope.modal.title\r\n .replace(/\\.$/, '')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase()\r\n .slice(0, -1);\r\n angular.element('body > #dessa .modal').modal('hide');\r\n $scope.dataLayerPush(\r\n 'search_modal',\r\n questionHeader + '|-x',\r\n 'related-questions-|-answer-|-exit',\r\n );\r\n };\r\n\r\n vm.search = function(data) {\r\n if (vm.inputObject) {\r\n return data;\r\n }\r\n return false;\r\n };\r\n\r\n vm.actionSearch = function() {\r\n vm.inputObject = vm.searchInputText;\r\n };\r\n\r\n vm.changeFilter = function() {\r\n if (vm.initialLoaded) {\r\n vm.sendQueryString();\r\n }\r\n };\r\n\r\n vm.searchByQueryString();\r\n vm.titleHide();\r\n\r\n $scope.openModal = function(data, origin) {\r\n $scope.modal = null;\r\n $scope.responsed = false;\r\n $scope.rating = null;\r\n\r\n if (origin === 'predictive') {\r\n var sourceId = '9';\r\n var paramObj = {\r\n interfaceId: $scope.dessa.interfaceId,\r\n data: data.value,\r\n };\r\n var searchUrl = $scope.domain + '/search';\r\n\r\n $rootScope.getService(paramObj, searchUrl).then(function(data_response) {\r\n var exactMatch = data_response.exactMatches[0]; //only one\r\n $scope.modal = {};\r\n $scope.modal.type = 'defined';\r\n $scope.modal.title = exactMatch.title;\r\n $scope.modal.body = exactMatch.response;\r\n exactMatch.source = sourceId;\r\n $scope.dessa.setCurrentData(exactMatch);\r\n $scope.recomended = data_response.relatedEntries;\r\n });\r\n }\r\n $('#search-modal').modal('show');\r\n return;\r\n };\r\n\r\n $scope.sendRadio = function(data) {\r\n $scope.rating = data;\r\n var paramObj = {\r\n requestType: 'RatingRequest',\r\n rating: $scope.rating,\r\n traceId: $scope.dessa.current.traceId,\r\n };\r\n var ratingUrl = $scope.domain + '/rating';\r\n\r\n $rootScope.postService(paramObj, ratingUrl).then(function(response) {\r\n $scope.responsed = true;\r\n });\r\n };\r\n\r\n //Added template Cache for analytics\r\n //TODO: Refactor to extend pagination directive\r\n $templateCache.put(\r\n 'template/pagination/pagination.html',\r\n '\\n' +\r\n '',\r\n );\r\n}\r\nsearchPaginationCtrl.$inject = [\r\n '$scope',\r\n '$location',\r\n '$anchorScroll',\r\n '$sce',\r\n '$rootScope',\r\n '$templateCache',\r\n '$timeout',\r\n];\r\napp.controller('searchPaginationCtrl', searchPaginationCtrl);\r\n","\r\nfunction customerTypeMobileCtrl($scope) {\r\n $scope.status = {\r\n isFirstOpen: true,\r\n isFirstDisabled: false\r\n };\r\n}\r\ncustomerTypeMobileCtrl.$inject = ['$scope'];\r\napp.controller('customerTypeMobileCtrl', customerTypeMobileCtrl);","function secFilingController(\r\n $q,\r\n $filter,\r\n $scope,\r\n $rootScope,\r\n $window,\r\n $http,\r\n $timeout,\r\n $element,\r\n) {\r\n var limitTo = $filter('limitTo');\r\n var initData = true;\r\n\r\n $scope.bodyData = '';\r\n $scope.currentLimit = '';\r\n $scope.limitData = '';\r\n $scope.sortColumn = {\r\n orderBy: 'date filed',\r\n descending: 'Descending',\r\n };\r\n $scope.companyItems = [{ id: 0, value: 'All', text: 'All' }];\r\n $scope.yearItems = [{ id: 0, value: 'All', text: 'All' }];\r\n $scope.fillingTypeItems = [{ id: 0, value: 'All', text: 'All' }];\r\n\r\n $scope.currentCol = 0;\r\n $scope.headers = [];\r\n\r\n $scope.table = '.sec-filing .custom-table';\r\n $scope.showAllMsg = '';\r\n $scope.showLessMsg = '';\r\n $scope.isShowButtonOpen = false;\r\n $scope.sort = false;\r\n $scope.data = {\r\n loaded: true,\r\n error: false,\r\n };\r\n\r\n $scope.dataObj = {};\r\n $scope.currentCompany = 'All';\r\n $scope.currentType = 'All';\r\n $scope.currentYear = 'All';\r\n\r\n var keys = {\r\n tab: 9,\r\n enter: 13,\r\n esc: 27,\r\n space: 32,\r\n left: 37,\r\n right: 39,\r\n };\r\n\r\n $scope.$on('tableheaders_loaded', function(e) {\r\n e.stopPropagation();\r\n $scope.headers = angular.element('.sec-filing .custom-table th');\r\n var columnHead = $scope.headers[$scope.columnIndex];\r\n var el = angular.element(columnHead);\r\n angular\r\n .element(el)\r\n .attr(\r\n 'aria-sort',\r\n $scope.sortOrder === 'desc' ? 'descending' : 'ascending',\r\n );\r\n angular.element($scope.headers[0]).attr('tabindex', '0');\r\n });\r\n\r\n $scope.onSelectItem = function(item) {};\r\n\r\n $scope.onClickUpdate = function($event) {\r\n $scope.getSecFillingData(\r\n $scope.sortColumn.orderBy,\r\n $scope.sortColumn.descending,\r\n );\r\n };\r\n\r\n $scope.getSecFillingData = function(sortCol, sortDir) {\r\n $scope.data.loaded = false;\r\n $scope.sortColumn.orderBy = sortCol;\r\n $scope.sortColumn.descending = sortDir;\r\n\r\n $scope.dataObj.sortColumn = $scope.sortColumn.orderBy;\r\n $scope.dataObj.sortDirection = $scope.sortColumn.descending;\r\n $scope.dataObj.filingType = $scope.currentType ? $scope.currentType : 'All';\r\n $scope.dataObj.company = $scope.currentCompany\r\n ? $scope.currentCompany\r\n : 'All';\r\n $scope.dataObj.year = $scope.currentYear ? $scope.currentYear : 'All';\r\n\r\n $rootScope\r\n .postService($scope.dataObj, '/api/Datafeeds/GetSecFilingsData')\r\n .then(\r\n // Success\r\n function(response) {\r\n if (initData) {\r\n $scope.limitData = response.DefaultNumberToShow.rows;\r\n $scope.tableHead = response.ColumnNames;\r\n $scope.companyItems = $scope.setOptionItems(\r\n response.CompanyOptions,\r\n );\r\n $scope.yearItems = $scope.setOptionItems(response.YearOptions);\r\n $scope.filingTypeItems = $scope.setOptionItems(\r\n response.FilingTypeOptions,\r\n );\r\n $scope.currentLimit = $scope.limitData;\r\n initData = false;\r\n }\r\n\r\n $scope.bodyData = response.SecFilingData;\r\n $scope.data.loaded = true;\r\n },\r\n // Error\r\n function(response) {\r\n console.log(response);\r\n },\r\n );\r\n };\r\n\r\n $scope.setOptionItems = function(optionsData) {\r\n var items = [];\r\n for (var i = 0; i < optionsData.length; i++) {\r\n var item = { id: i, value: optionsData[i], text: optionsData[i] };\r\n items.push(item);\r\n }\r\n\r\n return items;\r\n };\r\n\r\n $scope.sortable = function(sort) {\r\n $scope.$watch('bodyData', function handleBodyDataChange(\r\n newValue,\r\n oldValue,\r\n ) {\r\n if ($scope.bodyData.length > 0) {\r\n $scope.sort = sort;\r\n if ($scope.sort == true) {\r\n $scope.body = limitTo($scope.bodyData, $scope.currentLimit);\r\n $timeout(function() {\r\n var i;\r\n var index;\r\n var columnHead;\r\n var tableHead = angular.element($scope.table + ' th');\r\n for (i = 0; i < tableHead.length; i++) {\r\n if (tableHead[i].innerHTML == $scope.sortColumn.orderBy) {\r\n columnHead = tableHead[i];\r\n index = i;\r\n }\r\n }\r\n\r\n $scope.columnIndex = index;\r\n\r\n var el = angular.element(columnHead);\r\n\r\n angular\r\n .element($scope.table + ' td, ' + $scope.table + ' th')\r\n .removeClass('active');\r\n el.addClass('active');\r\n $scope.addSortIndicator($scope.sortColumn.descending, el);\r\n $scope.paintSelectedColumn($scope.columnIndex);\r\n }, 300);\r\n }\r\n } else {\r\n $scope.body = [];\r\n }\r\n });\r\n };\r\n\r\n $scope.getColumnIndex = function(orderBy) {\r\n var i;\r\n var index;\r\n var tableHead = angular.element($scope.table + ' th');\r\n for (i = 0; i > tableHead.length; i++) {\r\n if (tableHead[i].innerHTML == orderBy) {\r\n index = i;\r\n }\r\n }\r\n return index;\r\n };\r\n\r\n // TODO: It seems this is not used here\r\n var getColumnKey = function(key) {\r\n var keys = Object.keys($scope.body[0]);\r\n return keys.indexOf(key);\r\n };\r\n\r\n $scope.sortColumnBy = function(columnKey, index, event) {\r\n if ($scope.sort == true) {\r\n var el = angular.element(event.currentTarget);\r\n\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '-1');\r\n $scope.currentCol = index;\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '0');\r\n\r\n var currentSortDirection = el.hasClass('desc')\r\n ? 'Descending'\r\n : 'Ascending';\r\n\r\n var newSortDirection =\r\n currentSortDirection == 'Descending' ? 'Ascending' : 'Descending';\r\n\r\n $scope.getSecFillingData(columnKey, newSortDirection);\r\n }\r\n };\r\n\r\n $scope.changeSorting = function(columnKey, columnHeader, index) {\r\n $scope.sortColumn.descending =\r\n $scope.sortColumn.descending == 'Descending' ? 'Ascending' : 'Descending';\r\n $scope.sortColumn.orderBy = columnKey;\r\n\r\n angular.element($scope.headers).attr('aria-sort', 'none');\r\n\r\n angular\r\n .element($scope.table + ' td, ' + $scope.table + ' th')\r\n .removeClass('active');\r\n columnHeader.addClass('active');\r\n $scope.paintSelectedColumn(index);\r\n $scope.addSortIndicator($scope.sortColumn.descending, columnHeader);\r\n };\r\n\r\n $scope.addSortIndicator = function(descending, columnHeader) {\r\n angular\r\n .element('.asc')\r\n .removeClass('asc')\r\n .addClass('desc');\r\n\r\n if ($scope.sortColumn.descending == 'Descending') {\r\n columnHeader.removeClass('asc').addClass('desc');\r\n columnHeader.attr('aria-sort', 'descending');\r\n } else {\r\n columnHeader.removeClass('desc').addClass('asc');\r\n columnHeader.attr('aria-sort', 'ascending');\r\n }\r\n };\r\n\r\n $scope.paintSelectedColumn = function(index) {\r\n var trs = angular.element($scope.table + ' tr');\r\n var tds = trs.find('td:eq(' + index + ')');\r\n tds.addClass('active');\r\n };\r\n\r\n $scope.setShowLabels = function(more, less) {\r\n $scope.showAllMsg = more;\r\n $scope.showLessMsg = less;\r\n\r\n $scope.currentShowMsg = $scope.showAllMsg;\r\n $scope.showIcon = 'caret-arrow-down';\r\n };\r\n\r\n $scope.toggleMoreInfo = function() {\r\n if ($scope.currentShowMsg == $scope.showLessMsg) {\r\n $scope.currentLimit = $scope.limitData;\r\n $scope.body = limitTo($scope.bodyData, $scope.limitData);\r\n $scope.showIcon = 'caret-arrow-down';\r\n $scope.currentShowMsg = $scope.showAllMsg;\r\n } else {\r\n $scope.currentLimit = '';\r\n $scope.body = $scope.bodyData;\r\n $scope.showIcon = 'caret-arrow-up';\r\n $scope.currentShowMsg = $scope.showLessMsg;\r\n }\r\n\r\n $scope.isShowButtonOpen = !$scope.isShowButtonOpen;\r\n\r\n $timeout(function() {\r\n $scope.paintSelectedColumn($scope.columnIndex);\r\n }, 50);\r\n };\r\n\r\n $scope.keyboardHandler = function($event, $index, columnKey) {\r\n if ($event.altKey || $event.ctrlKey || $event.shiftKey) {\r\n // do nothing\r\n return true;\r\n }\r\n\r\n switch ($event.keyCode) {\r\n case keys.left:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n angular\r\n .element($scope.headers[$scope.currentCol])\r\n .attr('tabindex', '-1');\r\n if ($scope.currentCol == 0) {\r\n $scope.currentCol = $scope.headers.length;\r\n }\r\n $scope.currentCol = $scope.currentCol - 1;\r\n angular\r\n .element($scope.headers[$scope.currentCol])\r\n .attr('tabindex', '0');\r\n angular.element($scope.headers[$scope.currentCol]).focus();\r\n break;\r\n case keys.right:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n angular\r\n .element($scope.headers[$scope.currentCol])\r\n .attr('tabindex', '-1');\r\n $scope.currentCol = $index + 1;\r\n if ($scope.currentCol == $scope.headers.length) {\r\n $scope.currentCol = 0;\r\n }\r\n angular\r\n .element($scope.headers[$scope.currentCol])\r\n .attr('tabindex', '0');\r\n angular.element($scope.headers[$scope.currentCol]).focus();\r\n break;\r\n case keys.space:\r\n case keys.enter:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n $scope.sortColumnBy(columnKey, $index, $event);\r\n break;\r\n default:\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n}\r\n\r\nsecFilingController.$inject = [\r\n '$q',\r\n '$filter',\r\n '$scope',\r\n '$rootScope',\r\n '$window',\r\n '$http',\r\n '$timeout',\r\n '$element',\r\n];\r\napp.controller('secFilingController', secFilingController);\r\n","/*\r\n * table.js\r\n * Javascript file to manage all interaction with the table component.\r\n */\r\n\r\n\r\n// TODO: Sortable Grid needs to be refactored into a directive\r\nfunction tableController($scope) {\r\n $scope.sort = false;\r\n $scope.columnIndex = \"\";\r\n $scope.sortOrder = \"\";\r\n $scope.currentCol = 0;\r\n $scope.headers = [];\r\n\r\n $scope.tableHead = {\r\n a: \"bold column\",\r\n b: \"standard column\",\r\n c: \"sorted column\",\r\n d: \"three lines title\",\r\n e: \"context link\",\r\n f: \"standard column\",\r\n g: \"multiple lines\"\r\n };\r\n\r\n var keys = {\r\n tab: 9,\r\n enter: 13,\r\n esc: 27,\r\n space: 32,\r\n left: 37,\r\n right: 39,\r\n }\r\n\r\n $scope.body = [\r\n {\r\n a: \"9/20/2013\",\r\n b: 29,\r\n c: \"2,625\",\r\n d: \"$302.45\",\r\n e: 84,\r\n f: \"$0.00\",\r\n g: \"Lorem ips\"\r\n },\r\n {\r\n a: \"9/20/2013\",\r\n b: 29,\r\n c: \"2,625\",\r\n d: \"$308.79\",\r\n e: 87,\r\n f: \"$0.00\",\r\n g: \"Lorem ips\"\r\n },\r\n {\r\n a: \"9/20/2013\",\r\n b: 29,\r\n c: \"2,625\",\r\n d: \"$308.79\",\r\n e: 78,\r\n f: \"$0.00\",\r\n g: \"Lorem ips\"\r\n },\r\n {\r\n a: \"9/20/2013\",\r\n b: 29,\r\n c: \"2,525\",\r\n d: \"$308.79\",\r\n e: 82,\r\n f: \"$0.00\",\r\n g: \"Lorem ips dolor sit a met, consecteur\"\r\n },\r\n {\r\n a: \"9/20/2013\",\r\n b: 30,\r\n c: \"2,551\",\r\n d: \"$308.79\",\r\n e: 79,\r\n f: \"$0.00\",\r\n g: \"Lorem ips\"\r\n },\r\n {\r\n a: \"9/20/2013\",\r\n b: 31,\r\n c: \"1,625\",\r\n d: \"$308.79\",\r\n e: 80,\r\n f: \"$0.00\",\r\n g: \"Lorem ips\"\r\n },\r\n {\r\n a: \"9/20/2013\",\r\n b: 29,\r\n c: \"1,825\",\r\n d: \"$308.79\",\r\n e: 82,\r\n f: \"$0.00\",\r\n g: \"Lorem ips\"\r\n },\r\n {\r\n a: \"09/20/2013\",\r\n b: 31,\r\n c: \"1,425\",\r\n d: \"$308.79\",\r\n e: 79,\r\n f: \"$0.00\",\r\n g: \"Lorem ips\"\r\n }\r\n ];\r\n\r\n $scope.sortColumn = {\r\n orderBy: 'a',\r\n descending: true\r\n };\r\n\r\n $scope.sortable = function (sort, sortOrder, columnIndex) {\r\n $scope.sort = sort;\r\n if ($scope.sort == true) {\r\n var columnKey = $scope.getColumnKey(columnIndex);\r\n $scope.sortColumn.descending = (sortOrder === 'desc') ? true : false;\r\n $scope.sortColumn.orderBy = columnKey;\r\n $scope.columnIndex = columnIndex;\r\n $scope.sortOrder = sortOrder;\r\n }\r\n };\r\n\r\n $scope.sortColumnBy = function (columnKey, event, index) {\r\n if ($scope.sort == true) {\r\n var el = angular.element(event.currentTarget);\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '-1');\r\n $scope.currentCol = index;\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '0');\r\n\r\n $scope.sortColumn.descending = (el.hasClass(\"desc\")) ? true : false;\r\n $scope.activeSortColumn(el);\r\n $scope.changeSorting(columnKey, el);\r\n }\r\n };\r\n\r\n $scope.getColumnKey = function (index) {\r\n var column = $scope.body[0];\r\n var keys = Object.keys(column);\r\n return keys[index];\r\n };\r\n\r\n $scope.activeSortColumn = function (columnHeader) {\r\n angular.element(\".custom-table td, .custom-table th\").removeClass(\"active\");\r\n columnHeader.addClass('active');\r\n var trs = angular.element(\".custom-table tr\");\r\n var tds = trs.find(\"td:eq(\" + columnHeader.index() + \")\");\r\n tds.addClass(\"active\");\r\n };\r\n\r\n\r\n $scope.changeSorting = function (columnKey, columnHeader) {\r\n $scope.sortColumn.descending = ($scope.sortColumn.orderBy === columnKey) ? !$scope.sortColumn.descending : false;\r\n $scope.sortColumn.orderBy = columnKey;\r\n\r\n angular.element($scope.headers).attr('aria-sort', 'none');\r\n\r\n var descending = $scope.sortColumn.descending;\r\n\r\n if (!descending) {\r\n angular.element(\".asc\").removeClass(\"asc\").addClass(\"desc\");\r\n columnHeader.removeClass('desc').addClass('asc');\r\n columnHeader.attr('aria-sort', 'ascending');\r\n } else {\r\n angular.element(\".asc\").removeClass(\"asc\").addClass(\"desc\");\r\n columnHeader.removeClass('asc').addClass('desc');\r\n columnHeader.attr('aria-sort', 'descending');\r\n }\r\n };\r\n\r\n $scope.addSortIndicator = function (sort, columnHeader) {\r\n columnHeader.removeClass('asc');\r\n columnHeader.removeClass('desc');\r\n columnHeader.addClass(sort);\r\n };\r\n\r\n angular.element(document).ready(function () {\r\n var columnKey = $scope.getColumnKey($scope.columnIndex);\r\n $scope.headers = angular.element(\".custom-table th\");\r\n var columnHead = $scope.headers[$scope.columnIndex];\r\n var el = angular.element(columnHead);\r\n $scope.activeSortColumn(el);\r\n $scope.addSortIndicator($scope.sortOrder, el);\r\n angular.element(el).attr('aria-sort', (($scope.sortOrder === 'desc') ? 'descending' : 'ascending'));\r\n angular.element($scope.headers[0]).attr('tabindex', '0');\r\n });\r\n\r\n $scope.keyboardHandler = function ($event, $index) {\r\n if ($event.altKey || $event.ctrlKey || $event.shiftKey) {\r\n // do nothing\r\n return true;\r\n }\r\n\r\n switch ($event.keyCode) {\r\n case keys.left:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '-1');\r\n if ($scope.currentCol == 0) {\r\n $scope.currentCol = $scope.headers.length;\r\n }\r\n $scope.currentCol = $scope.currentCol - 1;\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '0');\r\n angular.element($scope.headers[$scope.currentCol]).focus();\r\n break;\r\n case keys.right:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '-1');\r\n $scope.currentCol = $index + 1;\r\n if ($scope.currentCol == $scope.headers.length) {\r\n $scope.currentCol = 0;\r\n }\r\n angular.element($scope.headers[$scope.currentCol]).attr('tabindex', '0');\r\n angular.element($scope.headers[$scope.currentCol]).focus();\r\n break;\r\n case keys.space:\r\n case keys.enter:\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n $scope.sortColumnBy($scope.getColumnKey($index), $event, $index);\r\n break;\r\n default:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n};\r\n\r\ntableController.$inject = ['$scope'];\r\napp.controller('tableController', tableController);","/*\r\n * tabs.js\r\n * Javascript file to manage all interaction with the List Components page.\r\n */\r\nfunction tabsController($scope, $rootScope, $window, $http) {\r\n $scope.componentID = '';\r\n $scope.relativeURL = $window.location.pathname;\r\n $scope.activeTab = 'tab-1';\r\n $scope.changeTab = function(tab) {\r\n $scope.activeTab = null;\r\n $rootScope.currentTabID = $scope.componentID;\r\n\r\n hideTabs();\r\n history.pushState(null, null, window.location.pathname + '#' + tab);\r\n\r\n tab = escapeSelector(tab);\r\n angular\r\n .element('#' + $scope.componentID + ' [data-panel=' + _.escape(tab) + ']')\r\n .addClass('active');\r\n angular\r\n .element('#' + $scope.componentID + ' .tab-links li')\r\n .removeClass('active');\r\n angular\r\n .element('#' + $scope.componentID + ' .tab-links li')\r\n .attr('tabindex', -1);\r\n angular\r\n .element(\r\n '#' + $scope.componentID + \" .tab-links li[data-id='\" + _.escape(tab) + \"']\",\r\n )\r\n .addClass('active');\r\n angular\r\n .element(\r\n '#' + $scope.componentID + \" .tab-links li[data-id='\" + _.escape(tab) + \"']\",\r\n )\r\n .attr('tabindex', 0);\r\n angular\r\n .element(\r\n '#' + $scope.componentID + \" .tab-links li[data-id='\" + _.escape(tab) + \"']\",\r\n )\r\n .focus();\r\n $scope.activeTab = tab;\r\n };\r\n\r\n $scope.checkArrows = function(e) {\r\n if (e.key == 'ArrowRight') {\r\n var thenum = angular\r\n .element('#' + $scope.componentID + ' .tab-links li')\r\n .index($('#' + $scope.componentID + ' .tab-links li.active')[0]);\r\n if (numberOfTabs() >= thenum + 2) {\r\n $scope.activeTab = angular\r\n .element(\r\n '#' +\r\n $scope.componentID +\r\n ' .tab-links li:eq(' +\r\n (thenum + 1) +\r\n ')',\r\n )\r\n .attr('data-id');\r\n $scope.changeTab(_.escape($scope.activeTab));\r\n }\r\n } else if (e.key == 'ArrowLeft') {\r\n var thenum = angular\r\n .element('#' + $scope.componentID + ' .tab-links li')\r\n .index($('#' + $scope.componentID + ' .tab-links li.active')[0]);\r\n if (thenum - 1 >= 0) {\r\n $scope.activeTab = angular\r\n .element(\r\n '#' +\r\n $scope.componentID +\r\n ' .tab-links li:eq(' +\r\n (thenum - 1) +\r\n ')',\r\n )\r\n .attr('data-id');\r\n $scope.changeTab(_.escape($scope.activeTab));\r\n }\r\n }\r\n };\r\n\r\n var checkUrlForTab = function() {\r\n var url = window.location.href;\r\n if (url.indexOf('#tab-') > -1) {\r\n var splitArray = url.split('#tab-');\r\n var tab = 'tab-' + splitArray[1].replace(/[^a-zA-Z0-9-]/g, '');\r\n angular\r\n .element('#' + $scope.componentID)\r\n ?.attr('style', 'display: block');\r\n //$scope.componentID = splitArray[1];\r\n //window.addEventListener('popstate', popStateListener);\r\n //angular.element(\"#\" + splitArray[1] + \" .tab-links li\").removeClass(\"active\");\r\n //$(\"#\" + $scope.componentID + \" .tab-pane:has('section')\").css(\"padding\", \"0\");\r\n $scope.changeTab(tab);\r\n //console.log(splitArray[1]);\r\n }\r\n };\r\n\r\n var numberOfTabs = function() {\r\n return angular.element('#' + $scope.componentID + ' .tab-links li').length;\r\n };\r\n\r\n var showFirstTab = function() {\r\n angular\r\n .element('#' + $scope.componentID + ' .tab-links li:first')\r\n .addClass('active');\r\n angular\r\n .element('#' + $scope.componentID + ' .tab-pane:first')\r\n .addClass('active');\r\n };\r\n\r\n var hideTabs = function() {\r\n var activeTab = angular\r\n .element('#' + $rootScope.currentTabID + ' .tab-pane')\r\n .filter('.active');\r\n activeTab.removeClass('active');\r\n };\r\n\r\n var popStateListener = function() {\r\n hideTabs();\r\n $scope.getActiveTab($rootScope.currentTabID);\r\n // e.state is equal to the data-attribute of the last image we clicked\r\n };\r\n\r\n $scope.setInitTab = function(ID) {\r\n $scope.componentID = ID;\r\n window.addEventListener('popstate', popStateListener);\r\n angular.element('#' + ID + ' .tab-links li').removeClass('active');\r\n $('#' + $scope.componentID + \" .tab-pane:has('section')\").css(\r\n 'padding',\r\n '0',\r\n );\r\n showFirstTab();\r\n checkUrlForTab();\r\n };\r\n\r\n $scope.getActiveTab = function(ID) {\r\n var hash = window.location.hash;\r\n if (hash) {\r\n hash = sanitizeHTML(hash.replace('/', ''));\r\n angular\r\n .element('#' + ID + ' [data-panel=' + hash.replace('#', '') + ']')\r\n .addClass('active');\r\n angular.element('#' + ID + ' .tab-links li').removeClass('active');\r\n angular\r\n .element(\r\n '#' + ID + \" .tab-links li[data-id='\" + hash.replace('#', '') + \"']\",\r\n )\r\n .addClass('active');\r\n return;\r\n }\r\n angular.element('#' + ID + ' .tab-links li').removeClass('active');\r\n showFirstTab();\r\n };\r\n function escapeSelector(selector) {\r\n return selector.replace(/[!\"#$%&'()*+,.\\/:;<=>?@[\\\\\\]^`{|}~]/g, \"\\\\$&\");\r\n }\r\n\r\n function sanitizeHTML(input) { \r\n var div = document.createElement('div'); \r\n div.textContent = input; // Strips HTML tags \r\n return div.innerHTML; \r\n }\r\n}\r\ntabsController.$inject = ['$scope', '$rootScope', '$window', '$http'];\r\napp.controller('tabsController', tabsController);\r\n","/*\r\n * tertiaryNav.js\r\n * Javascript file to manage all interaction with the Tertiary Navigation elements.\r\n */\r\n\r\nfunction TertiaryNavCtrl($scope, $rootScope, $window) {\r\n\r\n // Column Layout\r\n if ($window.outerWidth > 767) {\r\n var lists = angular.element('.tertiary-ul');\r\n\r\n angular.forEach(lists, function(list, index, obj) {\r\n var list = angular.element(list),\r\n length = list[0].children.length,\r\n otherIndex = index === 0 ? 1 : 0,\r\n otherListLength = angular.element(obj[otherIndex]).children().length,\r\n colCount;\r\n switch(true) {\r\n case (length <= 5 || length > 5 && length <= 10 && otherListLength > 10):\r\n colCount = 1;\r\n break;\r\n case (length > 5 && length <= 10 || length > 10 && otherListLength > 10):\r\n colCount = 2;\r\n break;\r\n case (length > 10):\r\n colCount = 3;\r\n break;\r\n }\r\n // set css column count\r\n list.css('column-count', colCount);\r\n // add column class to parent\r\n list.closest('.section-nav').addClass('col-md-' + (colCount * 3));\r\n list.closest('.section-nav').addClass('col-lg-' + (colCount * 3));\r\n });\r\n }\r\n \r\n //$rootScope.isCollapsed = true;\r\n $rootScope.tertiaryActive = true;\r\n\r\n $scope.toggleTertiary = function ($event) {\r\n \r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n $rootScope.isCollapsed = !$rootScope.isCollapsed;\r\n\r\n var window_element = angular.element($window);\r\n var winWidth = window_element.outerWidth();\r\n\r\n\r\n if (winWidth < 768) {\r\n $rootScope.checkTertiaryNav();\r\n if ($rootScope.isCollapsed) {\r\n angular.element(\"body\").css(\"overflow\", \"auto\");\r\n // show email sign up\r\n angular.element('#email-signup').css('display', 'block');\r\n } else {\r\n angular.element(\"body\").css(\"overflow\", \"hidden\");\r\n // hide email sign up\r\n angular.element('#email-signup').css('display', 'none');\r\n }\r\n }\r\n } \r\n};\r\n\r\nTertiaryNavCtrl.$inject = ['$scope', '$rootScope', '$window'];\r\napp.controller('TertiaryNavCtrl', TertiaryNavCtrl);\r\n\r\n","/*\r\n * twitter-widget.js\r\n * JS to retrieve data from twitter API\r\n */\r\n\r\nfunction TwitterWidgetController($scope) {\r\n const vm = $scope;\r\n const delay = 1500;\r\n vm.userHandle = null;\r\n vm.twitDescription = null;\r\n vm.controlsPrev = null;\r\n\r\n angular.element(document).ready(() => {\r\n vm.carouselItems = angular.element('#carousel-example-generic');\r\n vm.controlsPrev = angular.element(vm.carouselItems).find('.left');\r\n vm.controlsNext = angular.element(vm.carouselItems).find('.right');\r\n\r\n let userHandleValue = angular\r\n .element('.item.active span.twitter-handle')\r\n .text();\r\n let twitDescriptionContent = angular\r\n .element('.item.active .tweet-copy span.twit-plain-text')\r\n .text()\r\n .replace(/<[^>]+>/gm, ' ');\r\n\r\n vm.userHandle = userHandleValue;\r\n vm.twitDescription = twitDescriptionContent;\r\n\r\n setTimeout(() => {\r\n userHandleValue = angular\r\n .element('.item.active span.twitter-handle')\r\n .text();\r\n twitDescriptionContent = angular\r\n .element('.item.active .tweet-copy span.twit-plain-text')\r\n .text()\r\n .replace(/<[^>]+>/gm, ' ');\r\n\r\n vm.userHandle = userHandleValue;\r\n vm.twitDescription = twitDescriptionContent;\r\n vm.$apply();\r\n }, delay);\r\n\r\n vm.carouselItems.on('slid.bs.carousel', () => {\r\n userHandleValue = angular\r\n .element('.item.active span.twitter-handle')\r\n .text();\r\n twitDescriptionContent = angular\r\n .element('.item.active .tweet-copy span.twit-plain-text')\r\n .text()\r\n .replace(/<[^>]+>/gm, ' ');\r\n\r\n vm.twitDescription = twitDescriptionContent;\r\n vm.userHandle = userHandleValue;\r\n vm.$apply();\r\n });\r\n });\r\n}\r\nTwitterWidgetController.$inject = ['$scope', '$element', '$timeout'];\r\napp.controller('TwitterWidgetController', TwitterWidgetController);\r\n","/*\r\n * Angular controller\r\n * jplayer direcive manage the video component\r\n * \r\n */\r\n\r\nfunction videoController($scope, $element) {\r\n $scope.type = $element.attr(\"data-type\");\r\n var modal = $element.find(\".modal\");\r\n\r\n window.addEventListener('popstate', function (e) {\r\n angular.element(modal).modal('hide');\r\n });\r\n\r\n angular.element(document).ready(function () {\r\n angular.element(\".modal-video\");\r\n angular.element(modal).on('hidden.bs.modal', function (e) {\r\n $scope.$broadcast('stopPlay');\r\n $scope.$broadcast('stopJpVideo');\r\n });\r\n\r\n angular.element(modal).on('show.bs.modal', function (e) {\r\n $scope.$broadcast('playVideo');\r\n $scope.$broadcast('playJpVideo');\r\n });\r\n });\r\n};\r\n\r\nvideoController.$inject = ['$scope', '$element'];\r\napp.controller('videoController', videoController);\r\n","/* eslint-disable no-use-before-define */\r\napp.controller('CCForgotPasswordController', CCForgotPasswordController);\r\nCCForgotPasswordController.$inject = [\r\n '$scope',\r\n 'assetService',\r\n '$state',\r\n];\r\n\r\nfunction CCForgotPasswordController(\r\n $scope,\r\n assetService,\r\n $state,\r\n) {\r\n // Original Controller src\\assets\\site\\js\\src\\common\\forgot-password.js\r\n const vm = this;\r\n vm.cyclePath = [\r\n {\r\n path: assetService.forgotPasswordRouteStates.CONFIRMATION_CODE,\r\n change: false,\r\n nameBtn: 'Continue',\r\n },\r\n ];\r\n vm.cyclePathPin = [\r\n {\r\n path: assetService.forgotPasswordRouteStates.ENTER_PIN_NUMBER,\r\n change: false,\r\n },\r\n {\r\n path: assetService.forgotPasswordRouteStates.CREATE_NEW_PASSWORD,\r\n change: false,\r\n },\r\n ];\r\n vm.mainBtnActivate = true;\r\n vm.actualPath = 0;\r\n vm.cancelPath = \"\";\r\n $scope.$on(assetService.forgotPasswordEvents.SAVE_DATA, (event, data) => {\r\n $state.go(data);\r\n });\r\n\r\n function getInfo() {\r\n // function to get information from api\r\n }\r\n}\r\n","/* eslint-disable no-use-before-define */\r\napp.controller('CCHomeForgotPassword', CCHomeForgotPassword);\r\nCCHomeForgotPassword.$inject = [\r\n '$state',\r\n 'assetService',\r\n];\r\n\r\nfunction CCHomeForgotPassword(\r\n $state,\r\n assetService,\r\n) {\r\n function load() {\r\n $state.go(assetService.forgotPasswordRouteStates.FORGOT_PASSWORD);\r\n }\r\n /* ---------------Initialization-------------------*/\r\n const init = function () {\r\n load();\r\n };\r\n\r\n init();\r\n}\r\n","/* eslint-disable no-use-before-define */\r\napp.controller('CCCreateConfirmationCode', CCCreateConfirmationCode);\r\nCCCreateConfirmationCode.$inject = [\r\n 'assetService',\r\n];\r\n\r\nfunction CCCreateConfirmationCode(\r\n assetService,\r\n) {\r\n /* --------------Scope Vars-----------------------*/\r\n const vm = this;\r\n\r\n /* --------------Gloabl Vars-----------------------*/\r\n vm.cyclePath = [\r\n {\r\n path: assetService.forgotPasswordRouteStates.CONFIRMATION_CODE,\r\n change: false,\r\n },\r\n {\r\n path: assetService.forgotPasswordRouteStates.ENTER_PIN_NUMBER,\r\n change: false,\r\n },\r\n ];\r\n vm.mainBtnActivate = false;\r\n vm.actualPath = 0;\r\n // vm.cancelPath = \"\";\r\n}\r\n","/* eslint-disable no-use-before-define */\r\nCCCreateProfileController.$inject = ['$scope', '$rootScope', '$http', 'cookiesService', 'assetService', '$state'];\r\napp.controller('CCCreateProfileController', CCCreateProfileController);\r\n\r\nfunction CCCreateProfileController(\r\n $scope,\r\n $rootScope,\r\n $http,\r\n cookiesService,\r\n assetService,\r\n $state,\r\n) {\r\n // Original Controller src\\assets\\site\\js\\src\\common\\create-profile.js\r\n const vm = this;\r\n vm.cyclePath = [\r\n {\r\n path: assetService.forgotPasswordRouteStates.SUCCESS,\r\n change: false,\r\n nameBtn: 'Update Password',\r\n },\r\n ];\r\n vm.cancelPath = \"\";\r\n\r\n function prepareForm() {\r\n $rootScope.dataLayer.push({\r\n event: 'account-register-page',\r\n });\r\n }\r\n\r\n $scope.$on(assetService.forgotPasswordEvents.SAVE_DATA, (event, data) => {\r\n // prepareForm();\r\n $state.go(data);\r\n });\r\n\r\n const init = function () {\r\n\r\n };\r\n\r\n init();\r\n}\r\n","/*\r\n * hero-stock.js\r\n * hero stock ticker mobile accordion\r\n */\r\n\r\n(() => {\r\n const element = document.querySelector('.de-hero-stock-ticker');\r\n let button;\r\n let content;\r\n let toggle = false;\r\n\r\n if (element) {\r\n button = element.querySelector('a.ci-i-cross');\r\n content = element.querySelector('.home-submenu');\r\n\r\n button.addEventListener('click', () => {\r\n if (toggle) {\r\n button.classList.add('active');\r\n content.classList.add('active');\r\n toggle = false;\r\n } else {\r\n button.classList.remove('active');\r\n content.classList.remove('active');\r\n toggle = true;\r\n }\r\n });\r\n }\r\n})();\r\n","/*\r\n * popover.js\r\n * Javascript file to init the bootstrap popover with template\r\n */\r\n$(function() {\r\n if ($.isFunction($.fn.popover)) {\r\n $('[rel=popover]').popover({\r\n html: true,\r\n trigger: 'hover focus',\r\n placement: 'top',\r\n content: function() {\r\n return '\"\"';\r\n },\r\n });\r\n }\r\n});\r\n","/*\r\n * quick-links.js\r\n */\r\n\r\n(() => {\r\n // DESSA (Duke Energy Smart Search Assistant) toggle\r\n const quickLinks = document.querySelector('.de-quick-links');\r\n let toggleLink;\r\n let hasToggle;\r\n let targetLink;\r\n let dessaComponent;\r\n let toggleIsOpen = false;\r\n\r\n if (quickLinks) {\r\n toggleLink = quickLinks.querySelector('.de-quick-links__link--toggle');\r\n\r\n // close DESSA component\r\n if (toggleLink) {\r\n toggleDESSA(false, toggleLink.getAttribute('data-dessa-guid'));\r\n }\r\n\r\n // quick link click listener\r\n /**\r\n * Element.closest() polyfill\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\r\n */\r\n\r\n if (!Element.prototype.closest) {\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n }\r\n Element.prototype.closest = function (s) {\r\n var el = this;\r\n var ancestor = this;\r\n if (!document.documentElement.contains(el)) return null;\r\n do {\r\n if (ancestor.matches(s)) return ancestor;\r\n ancestor = ancestor.parentElement;\r\n } while (ancestor !== null);\r\n return null;\r\n };\r\n }\r\n\r\n quickLinks.addEventListener('click', (event) => {\r\n targetLink = event.target.closest('.de-quick-links__link');\r\n hasToggle = targetLink.classList.contains('de-quick-links__link--toggle');\r\n\r\n dataLayerPush(\r\n targetLink.getAttribute('data-cat'),\r\n targetLink.getAttribute('data-lab'),\r\n targetLink.getAttribute('data-act'),\r\n );\r\n\r\n if (hasToggle) {\r\n toggleDESSA(!toggleIsOpen, targetLink.getAttribute('data-dessa-guid'));\r\n }\r\n });\r\n }\r\n\r\n // toggle DESSA component open/close\r\n function toggleDESSA(active, guid) {\r\n dessaComponent = document.getElementById(\r\n `dessa-ql-${guid}`,\r\n );\r\n\r\n if (dessaComponent) {\r\n dessaComponent.style.maxHeight = active ? 'none' : '0px';\r\n toggleIsOpen = active;\r\n }\r\n\r\n // toggle aria-expanded value\r\n toggleLink.setAttribute('aria-expanded', toggleIsOpen);\r\n }\r\n\r\n // dataLayer push\r\n function dataLayerPush(category, label, action) {\r\n if (dataLayer) {\r\n dataLayer.push({\r\n 'event-category': category,\r\n 'event-label': label,\r\n 'event-action': action,\r\n event: 'event-click',\r\n });\r\n }\r\n }\r\n})();\r\n","\r\n/*\r\n * duke.analyst-coverage.js\r\n * Angular directive to find all anchors and insert analytics attributes to them.\r\n */\r\n\r\n\r\napp.directive(\"analystCoverage\", ['$sce', '$compile', function ($sce, $compile) {\r\n return {\r\n restrict: \"C\",\r\n scope: true,\r\n link: function (scope, element, attrs) {\r\n let allAnchors = element.find(\".intro-txt a\");\r\n\r\n angular.forEach(allAnchors, function (item) {\r\n let anchor = angular.element(item)\r\n anchor.attr('data-category', 'investor_data_feed');\r\n anchor.attr('data-label', 'analyst_coverage');\r\n anchor.attr('data-action', anchor.text());\r\n $compile(anchor)(scope);\r\n });\r\n\r\n }\r\n }\r\n}]);","/*\r\n * duke.figure.js\r\n * Angular directive for modal on element figure for SlideShow\r\n */\r\n\r\napp.directive(\"figure\", ['$sce', '$modal', function ($sce, $modal) {\r\n return {\r\n restrict: \"E\",\r\n scope: true,\r\n link: function (scope, element, attrs, ngModel) {\r\n /*To manage the modals on the site*/\r\n scope.openModal = function (modalCustom, modalContent) {\r\n var modalInstance = $modal.open({\r\n animation: true,\r\n templateUrl: (modalContent) ? modalContent + \".html\" : 'myModalContent.html',\r\n windowTemplateUrl: modalCustom,\r\n controller: 'ModalInstanceCtrl',\r\n size: 'lg'\r\n });\r\n };\r\n }\r\n }\r\n}]);\r\n","app.directive('formTextField', ['$cookies', function ($cookies) {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, ngModel) {\r\n //Prepopulate text field with cookie value\r\n if (attrs.valueKey) {\r\n switch (attrs.valueSource) {\r\n case 'cookie':\r\n ngModel.$setViewValue($cookies.get(attrs.valueKey));\r\n ngModel.$render();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}]);","\r\n/*\r\n * duke.investor-data-feed-img.js\r\n * Angular directive for images on investor data feed\r\n */\r\n\r\n\r\napp.directive('img', function () {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n errorId: '@'\r\n },\r\n link: function (scope, element, attrs) {\r\n // show an image-missing image\r\n // element.error(function () {\r\n $(element).on(\"error\", function() {\r\n var error = angular.element(\"#\" + scope.errorId);\r\n element.addClass('ng-hide');\r\n error.removeClass('ng-hide');\r\n });\r\n }\r\n }\r\n});","\r\n/*\r\n * duke.jplayer.js\r\n * Angular directive for videos from jplayer\r\n */\r\n\r\n\r\napp.directive('jplayer', [function () {\r\n return {\r\n restrict: 'EA',\r\n template: '
',\r\n link: function (scope, element, attrs) {\r\n scope.videoStarted = false;\r\n let $control = element,\r\n $player = $control.children('div'),\r\n src = angular.fromJson(attrs.video);\r\n\r\n let updatePlayer = function () {\r\n $player.jPlayer({\r\n swfPath: 'js/jplayer/',\r\n supplied: \"webmv, M4V\",\r\n solution: 'html, flash',\r\n wmode: 'window',\r\n size: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n cssClass: \"jp-video-360p\"\r\n },\r\n cssSelectorAncestor: '#' + attrs.id + 'Container',\r\n useStateClassSkin: true,\r\n autoBlur: false,\r\n smoothPlayBar: true,\r\n keyEnabled: true,\r\n remainingDuration: true,\r\n toggleDuration: true,\r\n ready: function () {\r\n $player\r\n .jPlayer(\"setMedia\", {\r\n title: \"Big Buck Bunny\",\r\n m4v: src.mp4,\r\n webmv: src.webmv,\r\n poster: attrs.poster\r\n })\r\n .jPlayer(attrs.autoplay === 'true' ? 'play' : 'stop');\r\n },\r\n play: function () {\r\n scope.videoStarted = true;\r\n scope.$digest();\r\n },\r\n pause: function () {\r\n\r\n },\r\n stop: function () {\r\n\r\n },\r\n ended: function () {\r\n\r\n }\r\n })\r\n .end()\r\n .unbind('click').click(function (e) {\r\n\r\n });\r\n };\r\n\r\n scope.$on('playJpVideo', function (e) {\r\n $player.jPlayer(\"play\");\r\n scope.videoStarted = true;\r\n scope.$digest();\r\n event.stopPropagation();\r\n });\r\n scope.$on('stopJpVideo', function () {\r\n $player.jPlayer(\"stop\");\r\n });\r\n scope.$watch(attrs.video, updatePlayer);\r\n updatePlayer();\r\n }\r\n\r\n };\r\n}]);\r\n\r\n","\r\n/*\r\n * duke.jurisdiction-alert.js\r\n * Angular directive for alerts on jurisdiction\r\n */\r\n\r\n\r\n//JURISDICTION ALERT\r\napp.directive(\"jurisdictionAlert\", ['$sce', '$compile', '$rootScope', '$timeout', '$window', function ($sce, $compile, $rootScope, $timeout, $window) {\r\n return {\r\n restrict: \"C\",\r\n scope: true,\r\n link: function (scope, element, attrs, ngModel) {\r\n /** FOR Jurisdiction ALERT **/\r\n scope.closeJurisdictionAlert = function () {\r\n let alertContainer = element;\r\n alertContainer.addClass(\"hide-alert\");\r\n\r\n $timeout(function () {\r\n alertContainer.remove();\r\n }, 3000);\r\n };\r\n\r\n scope.revertLocationChange = function (id, redirectUrl) {\r\n let dataObj = {\r\n alertId: id\r\n };\r\n let url = '/api/JurisdictionOverrideAlert/RevertLocationChange';\r\n\r\n $rootScope.postService(dataObj, url).then(\r\n // Success\r\n function (response) {\r\n\r\n if (response.Status && response.Status == \"OK\" && redirectUrl && redirectUrl.length > 0) {\r\n scope.closeJurisdictionAlert();\r\n $window.location = redirectUrl;\r\n\r\n } else {\r\n console.log(\"revertLocationChange error: incorrect response\");\r\n }\r\n },\r\n // Error\r\n function (response) {\r\n console.log(response);\r\n }\r\n );\r\n\r\n };\r\n }\r\n }\r\n}]);","\r\n/*\r\n * duke.pod-item.js\r\n * Angular directive for pod items on pushdown panel\r\n */\r\n\r\n\r\napp.directive('podItem', ['$document', function ($document) {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n title: \"@\",\r\n index: \"@\",\r\n imageSource: \"@\",\r\n imageAlt: \"@\"\r\n },\r\n template: '
\"{{imageAlt}}\"

{{title}}

',\r\n controller: [\"$scope\", \"$element\", \"$attrs\", function ($scope, $element, $attrs) {}]\r\n }\r\n}]);","\r\n/*\r\n * duke.rich-text-editor.js\r\n * Angular directive to find all anchors and insert analytics attributes to them.\r\n */\r\n\r\n\r\napp.directive(\"richTextEditor\", ['$sce', '$compile', function ($sce, $compile) {\r\n return {\r\n restrict: \"C\",\r\n scope: true,\r\n link: function (scope, element, attrs) {\r\n scope.scrollToDiv = function (div) {\r\n $location.hash(div);\r\n $anchorScroll();\r\n }\r\n\r\n }\r\n }\r\n}]);","/*\r\n * duke.slide-animation.js\r\n * Angular directive to slide animation on slide show\r\n */\r\n\r\napp.animation('.slide-animation', [function () {\r\n return {\r\n beforeAddClass: function (element, className, done) {\r\n let scope = element.scope();\r\n\r\n if (className == 'ng-hide') {\r\n let finishPoint = element.parent().width();\r\n if (scope.direction !== 'right') {\r\n finishPoint = -finishPoint;\r\n }\r\n TweenMax.to(element, 0.5, { left: finishPoint, onComplete: done });\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n removeClass: function (element, className, done) {\r\n let scope = element.scope();\r\n\r\n if (className == 'ng-hide') {\r\n element.removeClass('ng-hide');\r\n\r\n let startPoint = element.parent().width();\r\n if (scope.direction === 'right') {\r\n startPoint = -startPoint;\r\n }\r\n\r\n TweenMax.fromTo(element, 0.5, { left: startPoint }, { left: 0, onComplete: done });\r\n }\r\n else {\r\n done();\r\n }\r\n }\r\n };\r\n}]);\r\n\r\n\r\n","\r\n/*\r\n * duke.video-player.js\r\n * Angular directive for video jplayer\r\n */\r\n\r\n\r\napp.directive('videoJplayer', ['$sce', '$compile', function ($sce, $compile) {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n ismodal: \"=\",\r\n headline: \"@\",\r\n poster: \"@\",\r\n id: \"@\",\r\n url: \"@\"\r\n },\r\n template: '
 
 
Update RequiredTo play the media you will need to either update your browser to a recent version or update your Flash plugin.
',\r\n link: function ($scope, $element) {\r\n if ($scope.ismodal) {\r\n $scope.start = '';\r\n $scope.content = '
 
 
Update RequiredTo play the media you will need to either update your browser to a recent version or update your Flash plugin.
';\r\n let newElement = $scope.start + $scope.content + $scope.end;\r\n $element.html($compile(newElement)($scope));\r\n }\r\n }\r\n }\r\n}]);","/*\r\n * duke.youtube.js\r\n * Angular directive for videos took from youtube\r\n */\r\n\r\napp.directive('youtube', [\r\n '$sce',\r\n function($sce) {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n headline: '@',\r\n poster: '@',\r\n id: '@',\r\n autoplay: '=',\r\n ccLoadPolicy: '=',\r\n modestbranding: '=',\r\n rel: '=',\r\n allowfullscreen: '=',\r\n },\r\n template(tElem, tAttrs) {\r\n let allowFullScreen = '';\r\n if (tAttrs.allowfullscreen) {\r\n allowFullScreen = 'allowfullscreen';\r\n }\r\n let template = `
`;\r\n if (tAttrs.poster) {\r\n template +=\r\n '
';\r\n }\r\n template += '
';\r\n\r\n return template;\r\n },\r\n link($scope, $element, $attrs) {\r\n const self = $sce;\r\n self.iFrame = angular.element(document.querySelector(`#${$scope.id}`));\r\n $scope.play = false;\r\n let ccLoadPolicy = '&cc_load_policy=0';\r\n let modestbranding = '&modestbranding=0';\r\n let autoplay = '&autoplay=0';\r\n let rel = '&rel=0';\r\n const zero = 0;\r\n const negOne = -1;\r\n\r\n $scope.youtube_init = function() {\r\n if ($scope.ccLoadPolicy) {\r\n ccLoadPolicy = '&cc_load_policy=1';\r\n }\r\n if ($scope.modestbranding) {\r\n modestbranding = '&modestbranding=1';\r\n }\r\n if ($scope.rel) {\r\n rel = '&rel=1';\r\n }\r\n if ($scope.autoplay) {\r\n $scope.play = true;\r\n autoplay = '&autoplay=1&mute=1';\r\n }\r\n $scope.options = ccLoadPolicy + modestbranding + rel + autoplay;\r\n $scope.url = $sce.trustAsResourceUrl(\r\n `${$attrs.url}?showinfo=1${$scope.options}`,\r\n );\r\n };\r\n $scope.$on('playVideo', () => {\r\n $scope.options = `${$scope.options.slice(zero, negOne)}1`;\r\n $scope.url = $sce.trustAsResourceUrl(\r\n `${$attrs.url}?showinfo=1${$scope.options}`,\r\n );\r\n $scope.play = true;\r\n $scope.$digest();\r\n });\r\n $scope.$on('stopPlay', () => {\r\n $scope.options = `${$scope.options.slice(zero, negOne)}0`;\r\n $scope.url = $sce.trustAsResourceUrl(\r\n `${$attrs.url}?showinfo=1${$scope.options}`,\r\n );\r\n $scope.play = false;\r\n $scope.$digest();\r\n });\r\n $scope.playIframeVideo = function() {\r\n $scope.play = true;\r\n const iFrame = angular.element(\r\n document.querySelector(`#${$scope.id}`),\r\n );\r\n let url = iFrame.attr('src');\r\n url = url.slice(zero, negOne);\r\n iFrame.attr('src', `${url}1`);\r\n };\r\n\r\n $scope.youtube_init();\r\n },\r\n };\r\n },\r\n]);\r\n","/*\r\n * duke.checkbox-list.js\r\n * Angular directive for checkboxlist fields\r\n */\r\n\r\napp.directive('checkboxList', function ($document, $compile, $parse) {\r\n return {\r\n restrict: 'A',\r\n scope: {},\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, ngModel) {\r\n let selectedItems = {},\r\n labelsMap = {},\r\n checkboxGroups = element.find(\".form-group\");\r\n // Fill labels map and check if any control is already checked/initialized\r\n angular.forEach(checkboxGroups, function (item) {\r\n item = angular.element(item);\r\n\r\n let input = item.find(\"input\")[0];\r\n let label = item.find(\"label\").text();\r\n\r\n labelsMap[input.id] = {\r\n label: label\r\n };\r\n\r\n // If input is initially checked, start inserting values into the ngModel\r\n if (input.checked) {\r\n checkboxClick(input);\r\n };\r\n }).on(\"click\", function () {\r\n let item = angular.element(this);\r\n item = item.find('input')[0];\r\n \r\n checkboxClick(item);\r\n });\r\n\r\n // Might not be needed as Touched state is set by checkboxClick function\r\n // ngModel.$render = function () {\r\n // if (!ngModel.$modelValue) {\r\n // return;\r\n // }\r\n // ngModel.$setTouched();\r\n // }\r\n\r\n\r\n angular.element(element.find(\".form-group input\")).on(\"click\", function () {\r\n checkboxClick(this);\r\n });\r\n\r\n function checkboxClick(checkboxInput) {\r\n let id = checkboxInput.id;\r\n let model = angular.element(checkboxInput).controller('ngModel');\r\n let isChecked = model.$viewValue;\r\n\r\n ngModel.$setTouched();\r\n\r\n if (!isChecked) {\r\n let checkboxObject = {\r\n id: id,\r\n value: labelsMap[id].label,\r\n label: labelsMap[id].label\r\n }\r\n\r\n selectedItems[id] = checkboxObject;\r\n }\r\n else {\r\n delete selectedItems[id];\r\n }\r\n // If model is empty, setViewValue(null)\r\n if (Object.keys(selectedItems).length == 0) {\r\n ngModel.$setViewValue(null);\r\n }\r\n else {\r\n ngModel.$setViewValue(selectedItems);\r\n }\r\n }\r\n }\r\n }\r\n\r\n});","/*\r\n * duke.radio-button.js\r\n * Angular directive for radio buttons fields\r\n */\r\n\r\napp.directive(\"radioButton\", ['$sce', '$compile', function ($sce, $compile) {\r\n return {\r\n priority: 1001,\r\n restrict: \"E\",\r\n replace: true,\r\n scope: {\r\n myModel: \"=\",\r\n radioId: \"@\",\r\n radioGroupName: \"@\",\r\n innerValue: \"@\",\r\n text: \"@\",\r\n checked: \"=\",\r\n analytics: \"@\",\r\n onSelected: \"=\"\r\n },\r\n transclude: true,\r\n templateUrl: '/Assets/site/js/templates/public/radio-button-public.html',\r\n link: function (scope, element, attrs) {\r\n\r\n\r\n element.removeAttr(\"id\");\r\n let radioInput = element.find(\".radio-input\");\r\n let model = angular.element(element.find(\".radio-input\")).controller('ngModel');\r\n\r\n let isRequired = element.attr(\"required\");\r\n\r\n if (isRequired == \"required\") {\r\n element.parent().addClass(\"required\");\r\n radioInput.attr(\"required\", \"required\");\r\n element.removeAttr(\"required\");\r\n $compile(radioInput)(scope);\r\n }\r\n\r\n scope.radioChange = function () {\r\n if (scope.onSelected) {\r\n scope.onSelected(scope.analytics);\r\n }\r\n }\r\n\r\n scope.temporalRadioValue = {\r\n text: scope.text,\r\n value: scope.innerValue\r\n };\r\n\r\n if (scope.checked) {\r\n model.$setTouched();\r\n model.$setViewValue(scope.temporalRadioValue);\r\n }\r\n \r\n }\r\n }\r\n}]);\r\n"]}