{"version":3,"sources":["../../../app/scripts/external/common-extensions.js","../../../app/scripts/app.js","../../../app/scripts/app-env.js","../../../app/scripts/external/popoverHtmlUnsafePopup.js","../../../app/scripts/theme/carousel.min.js","../../../app/scripts/theme/jquery.easing.min.js","../../../app/scripts/theme/smoothscroll.js","../../../app/scripts/controllers/ea-public-area.js","../../../app/scripts/controllers/ea-secured-area.js","../../../app/scripts/controllers/ea-splash.js","../../../app/scripts/controllers/ea-signin.js","../../../app/scripts/controllers/debugger/ea-debugger-csp.js","../../../app/scripts/controllers/mixins/ea_mixin_session_helper.js","../../../app/scripts/controllers/mixins/ea_mixin_jwt_token_helper.js","../../../app/scripts/controllers/add/ea-add.js","../../../app/scripts/controllers/add/ea-add-step01.js","../../../app/scripts/controllers/add/ea-add-step02-ea.js","../../../app/scripts/controllers/add/ea-add-step02-costmgnt.js","../../../app/scripts/controllers/add/ea-add-step02-rate.js","../../../app/scripts/controllers/add/ea-add-step02-rate-connect.js","../../../app/scripts/controllers/add/ea-add-step03.js","../../../app/scripts/controllers/teams/ea-team-migrate.js","../../../app/scripts/controllers/teams/mixins/ac-mixin-choose-contract.js","../../../app/scripts/controllers/teams/ea-team-invite-accept.js","../../../app/scripts/controllers/teams/mixins/ac-mixin-choose-team.js","../../../app/scripts/controllers/teams/dashboards/ea-dashboards.js","../../../app/scripts/controllers/teams/dashboards/modals/ea_modal_branding.js","../../../app/scripts/controllers/teams/dashboards/mixins/ea_mixin_survey.js","../../../app/scripts/controllers/teams/dashboards/mixins/ea_mixin_branding.js","../../../app/scripts/controllers/teams/dashboards/mixins/ea_mixin_manage_contract_settings.js","../../../app/scripts/controllers/teams/dashboards/mixins/ea_mixin_notification_settings.js","../../../app/scripts/controllers/teams/dashboards/modals/ea_modal_manage_contract_settings.js","../../../app/scripts/controllers/teams/manage/ea-team-manage.js","../../../app/scripts/controllers/teams/dashboards/modals/ea_modal_notification_settings.js","../../../app/scripts/controllers/teams/rimanagement/ea-rimanagement.js","../../../app/scripts/controllers/teams/dashboards/modals/ea_modal_survey.js","../../../app/scripts/controllers/teams/manage/mixins/ea_mixin_team_management.js","../../../app/scripts/controllers/teams/manage/mixins/ea_mixin_team_edit_users.js","../../../app/scripts/controllers/teams/manage/mixins/ea_mixin_team_edit_permissions.js","../../../app/scripts/controllers/teams/manage/mixins/ea_mixin_team_edit_app.js","../../../app/scripts/controllers/teams/manage/modals/ea_modal_team_edit_users.js","../../../app/scripts/controllers/teams/manage/modals/ea_modal_team_edit_permissions.js","../../../app/scripts/controllers/teams/manage/modals/ea_modal_team_edit_app.js","../../../app/scripts/controllers/teams/manage/aad/ea-team-link-aad.js","../../../app/scripts/controllers/teams/manage/aad/ea-team-edit-aad.js","../../../app/scripts/controllers/teams/manage/buckets/ea-team-buckets.js","../../../app/scripts/controllers/teams/manage/settings/ea-team-settings.js","../../../app/scripts/controllers/billing/ea-upgrade-edition.js","../../../app/scripts/controllers/teams/contracts/cc-add-contract.js","../../../app/scripts/controllers/teams/contracts/aws/cc-aws.js","../../../app/scripts/controllers/teams/contracts/aws/cc-aws-prepare.js","../../../app/scripts/controllers/teams/contracts/aws/cc-aws-connect.js","../../../app/scripts/controllers/teams/contracts/aws/cc-aws-dashboard.js","../../../app/scripts/controllers/teams/contracts/gcp/cc-gcp.js","../../../app/scripts/controllers/teams/contracts/gcp/cc-gcp-prepare.js","../../../app/scripts/controllers/teams/contracts/gcp/cc-gcp-connect.js","../../../app/scripts/controllers/teams/contracts/gcp/cc-gcp-dashboard.js","../../../app/scripts/controllers/billing/ea-billing.js","../../../app/scripts/controllers/billing/ea-start-trial.js","../../../app/scripts/controllers/billing/ea-service-provider.js","../../../app/scripts/controllers/billing/modals/ea-modal-billing-purchase.js","../../../app/scripts/controllers/billing/mixins/ea-modal-billing-purchase.js","../../../app/scripts/controllers/billing/modals/ea-modal-billing-address.js","../../../app/scripts/controllers/billing/mixins/ea-modal-billing-address.js","../../../app/scripts/controllers/sso/ea-sso-callback.js","../../../app/scripts/controllers/csp/ac-csp-init.js","../../../app/scripts/controllers/csp/ac-csp.js","../../../app/scripts/controllers/csp/ac-csp-accounts.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step02-ea.js","../../../app/scripts/controllers/csp/ac-csp-gsi.js","../../../app/scripts/controllers/csp/add/ac-csp-add.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step01.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step02-t1.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step02-t2.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step02-aws.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step02-demo.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step02-v1.js","../../../app/scripts/controllers/csp/mixins/ac_mixin_csp_update_t1_account.js","../../../app/scripts/controllers/csp/modals/ac_modal_csp_update_t1_account.js","../../../app/scripts/controllers/csp/add/ac-csp-add-step03.js","../../../app/scripts/controllers/csp/mixins/ac_mixin_csp_update_ea_account.js","../../../app/scripts/controllers/csp/modals/ac_modal_csp_update_ea_account.js","../../../app/scripts/controllers/csp/mixins/ac_mixin_csp_update_aws_account.js","../../../app/scripts/controllers/csp/modals/ac_modal_csp_define_reseller_margin.js","../../../app/scripts/controllers/csp/mixins/ac-mixin-csp-register-customer-costmgnt.js","../../../app/scripts/controllers/csp/modals/ac-modal-csp-register-customer-costmgnt.js","../../../app/scripts/controllers/csp/modals/ac_modal_csp_update_aws_account.js","../../../app/scripts/controllers/csp/mixins/ac-mixin-csp-register-customer.js","../../../app/scripts/controllers/csp/modals/ac-modal-csp-register-customer.js","../../../app/scripts/controllers/csp/mixins/ac_mixin_gsi_update_settings.js","../../../app/scripts/controllers/csp/modals/ac_modal_gsi_update_settings.js","../../../app/scripts/controllers/csp/mixins/ac-mixin-csp-choose-customer.js","../../../app/scripts/controllers/csp/mixins/ac_mixin_csp_define_reseller_margin.js","../../../app/scripts/controllers/csp/mixins/ac_mixin_csp_define_reseller_filter.js","../../../app/scripts/controllers/csp/modals/ac_modal_csp_define_reseller_filter.js","../../../app/scripts/controllers/csp/mixins/ac-mixin-csp-download-price-sheet.js","../../../app/scripts/controllers/csp/modals/ac-model-csp-download-price-sheet.js","../../../app/scripts/controllers/csp/mixins/ac_mixin_csp_define_reseller_features.js","../../../app/scripts/controllers/csp/modals/ac_modal_csp_define_reseller_features.js","../../../app/scripts/controllers/csp/resellers/ac-csp-resellermanagement.js","../../../app/scripts/controllers/admin/ea-admin-jobs.js","../../../app/scripts/controllers/admin/modals/model_admin_add_user.js","../../../app/scripts/controllers/csp/resellers/modals/ac_modal_reseller_register.js","../../../app/scripts/controllers/admin/ea-admin.js","../../../app/scripts/controllers/admin/ea-admin-contracts.js","../../../app/scripts/controllers/admin/ea-admin-users.js","../../../app/scripts/controllers/admin/ea-admin-jobs-details.js","../../../app/scripts/controllers/admin/mixins/mixin-admin_add_user.js","../../../app/scripts/directives/ea-content-centered.js","../../../app/scripts/directives/charts/helpers/ac-chart-container-helpers.js","../../../app/scripts/directives/charts/ac-chart-raw.js","../../../app/scripts/directives/charts/ac-chart-area.js","../../../app/scripts/directives/ea-notification-center.js","../../../app/scripts/directives/ea-widget-host.js","../../../app/scripts/directives/ea-widget-dashboard.js","../../../app/scripts/directives/ea-widget-repository.js","../../../app/scripts/directives/widgets/ea-widget-chart-stacked-bar.js","../../../app/scripts/directives/widgets/ea-widget-chart-area.js","../../../app/scripts/directives/widgets/ea-widget-chart-gauge.js","../../../app/scripts/directives/widgets/ea-widget-chart-pie.js","../../../app/scripts/directives/widgets/ea-widget-simple-value.js","../../../app/scripts/directives/widgets/ea-widget-action-board.js","../../../app/scripts/directives/widgets/ea-widget-map.js","../../../app/scripts/directives/widgets/ea-widget-web-part.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-spendings-subscription-template.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-sorting.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-filters.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-export.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-datasources.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-template-host.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-default-template.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-subitem-default-template.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-csp-customer-template.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-subitem-spendings-service-template.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-csp-reseller-t2-template.js","../../../app/scripts/directives/widgets/ea-widget-group-filter-list-view-pg-subitem-csp-reseller-t2-template.js","../../../app/scripts/directives/widgets/ea-widget-ri-purchase-impact.js","../../../app/scripts/directives/widgets/ea-widget-ri-purchase-impact-datasources.js","../../../app/scripts/directives/widgets/ea-widget-iframe.js","../../../app/scripts/directives/ea-navbar.js","../../../app/scripts/directives/ea-listview.js","../../../app/scripts/directives/ea-file-drop-zone.js","../../../app/scripts/directives/ea-tag-list.js","../../../app/scripts/directives/ea-branding-theme.js","../../../app/scripts/directives/ea-trial.js","../../../app/scripts/directives/ea-upgrade-plan.js","../../../app/scripts/directives/ea-filter-panel.js","../../../app/scripts/services/ea-backend.js","../../../app/scripts/services/ea-backend-base.js","../../../app/scripts/services/ea-backend-admin.js","../../../app/scripts/services/ea-backend-admin-v2.js","../../../app/scripts/services/ea-backend-azure-v2.js","../../../app/scripts/services/ea-backend-azure-cached-content-loader.js","../../../app/scripts/services/ea-report-data.js","../../../app/scripts/services/ea-backend-azure.js","../../../app/scripts/services/ea-session2.js","../../../app/scripts/services/ea-config.js","../../../app/scripts/services/ea-team-management.js","../../../app/scripts/services/ea-branding.js","../../../app/scripts/services/ea-user-profile.js","../../../app/scripts/services/ea-bucket.js","../../../app/scripts/services/ea-utils.js","../../../app/scripts/services/ea-local-settings.js","../../../app/scripts/services/ea-data-coordinator.js","../../../app/scripts/services/ea-data-aggregate-operations.js","../../../app/scripts/services/ea-data-group-operations.js","../../../app/scripts/services/ea-data-filter-operations.js","../../../app/scripts/services/ea-data-raw-sources.js","../../../app/scripts/services/ea-data-export-operations.js","../../../app/scripts/services/ea-data-color-theme-generator.js","../../../app/scripts/services/ea-data-source-manager.js","../../../app/scripts/services/ea-data-join-operations.js","../../../app/scripts/services/ac-data-source-helper-csp-generic-summary.js","../../../app/scripts/services/ac-dpn-service.js","../../../app/scripts/services/helpers/ac-wizard-helper.js","../../../app/scripts/services/helpers/ac-wait-helper.js","../../../app/scripts/services/data-sources/ac-data-source-settings.js","../../../app/scripts/services/data-sources/ac-data-source-classes.js","../../../app/scripts/services/data-sources/ac-data-source-v1-spendings.js","../../../app/scripts/services/data-sources/ac-data-source-v2-spendings.js","../../../app/scripts/services/data-sources/ac-data-source-v3-spendings.js","../../../app/scripts/services/data-sources/ac-data-source-csp.js","../../../app/scripts/services/data-sources/ac-data-source-csp-gsi.js","../../../app/scripts/services/data-sources/ac-data-source-teaming.js","../../../app/scripts/services/data-sources/ac-data-source-ri.js","../../../app/scripts/services/data-sources/ac-data-source-csp-resellermanagement.js","../../../app/scripts/services/ea-download.js","../../../app/scripts/services/ea-blog.js","../../../app/scripts/services/ea-csp-service.js","../../../app/scripts/services/ea-chart-config.js","../../../app/scripts/services/cc-demo-mode.js","../../../app/scripts/modals/ac-upgrade-plan.js","../../../app/scripts/modals/ac-object-picker.js","../../../app/scripts/mixins/ac-single-line-box.js","../../../app/scripts/modals/ac-single-line-box.js","../../../app/scripts/mixins/cc-message-box.js","../../../app/scripts/modals/cc-message-box.js","../../../app/scripts/services/ea-billing.js","../../../app/scripts/services/ea-liveid.js"],"names":["e","this","window","t","n","r","arguments","length","modules","payloads","original","apply","console","error","trace","i","s","undefined","Object","prototype","toString","call","o","u","a","f","push","indexOf","split","charAt","slice","join","replace","id","uri","exports","packaged","define","require","ace","defineProperty","value","enumerable","writable","configurable","String","startsWith","lastIndexOf","endsWith","repeat","includes","assign","TypeError","keys","forEach","values","map","Array","find","findIndex","fill","Math","max","min","of","deepCopy","isArray","last","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","arrayToMap","createMap","create","arrayRemove","splice","escapeRegExp","escapeHTML","getMatchOffsets","offset","deferredCall","cancel","setTimeout","schedule","clearTimeout","isPending","delayedCall","delay","supportsLookbehind","RegExp","supportsUnicodeFlag","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","navigator","exec","platform","toLowerCase","userAgent","appName","isWin","isIE","parseFloat","match","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isEdge","isAIR","isAndroid","isChromeOS","isIOS","test","MSStream","isMobile","document","getRootNode","ownerDocument","hasCssString","createElement","appendChild","createTextNode","getDocumentHead","insertBefore","firstChild","buildDom","l","className","style","cssText","setAttribute","head","getElementsByTagName","documentElement","createElementNS","removeChildren","innerHTML","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","querySelectorAll","removeElementById","getElementById","remove","useStrictCSP","importCssString","importCssStylsheet","rel","href","scrollbarWidth","width","minWidth","height","display","position","left","overflow","offsetWidth","clientWidth","removeChild","computedStyle","getComputedStyle","setStyle","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","transform","animationName","translate","round","top","get","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","src","onload","qualifyURL","inherits","super_","constructor","mixin","implement","propagationStopped","defaultPrevented","_emit","_dispatchEvent","_eventRegistry","_defaultHandlers","type","stopPropagation","preventDefault","_signal","once","on","off","Promise","setDefaultHandler","_disabled_","removeDefaultHandler","pop","addEventListener","removeListener","removeEventListener","removeAllListeners","EventEmitter","reportError","Error","data","warn","setOptions","setOption","getOptions","$options","filter","hidden","getOption","forwardTo","handlesSet","set","$defaultOptions","defineOptions","name","initialValue","resetOptions","setDefaultValue","setDefaultValues","setMessages","nls","AppConfig","isDark","cssClass","$id","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","hasOwnProperty","all","$modes","moduleUrl","setModuleUrl","setLoader","dynamicModules","$loading","$loaded","loadModule","module","then","default","$require","setModuleLoader","version","currentScript","_currentScript","c","h","p","getAttribute","d","attributes","v","m","g","toUpperCase","y","b","base","init","start","row","column","end","isEqual","contains","compare","compareRange","comparePoint","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","fromPoints","extend","isEmpty","clone","collapseRows","toScreenRange","documentToScreenPosition","moveBy","comparePoints","Range","MODIFIER_KEYS","16","17","18","224","91","92","93","KEY_MODS","ctrl","alt","option","shift","super","meta","command","cmd","control","FUNCTION_KEYS","8","9","13","19","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","parseInt","enter","escape","esc","del","pow","keyCodeToString","fromCharCode","createComment","passive","elem","callback","getModifierState","altGr","location","keyLocation","timeStamp","destroy","addListener","$toDestroy","stopEvent","getButton","ctrlKey","altKey","shiftKey","button","capture","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","detail","abs","clientX","clientY","_clicks","2","3","4","metaKey","getModifierString","addCommandKeyListener","isOldGecko","keyCode","postMessage","nextTick","$idleBlocked","onIdle","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","bind","lineMode","pasteCancelled","Date","now","TextInput","Q","T","blur","focus","et","Z","S","renderer","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","opacity","w","E","fontSize","x","N","C","k","L","A","Number","MAX_SAFE_INTEGER","O","MIN_SAFE_INTEGER","M","_","activeElement","D","setNumberOfExtraLines","setAriaOptions","activeDescendant","inline","removeAttribute","role","setLabel","session","selection","cursor","onBlur","hasFocus","onFocus","H","$focusScroll","enableKeyboardAccessibility","preventScroll","getBoundingClientRect","parentElement","nodeType","host","isFocused","curOp","docChanged","selectionChanged","K","P","getLine","setSelectionRange","I","getRange","selectionStart","selectionEnd","resetSelection","F","setInputHandler","getInputHandler","q","onPaste","onTextInput","extendLeft","extendRight","restoreStart","restoreEnd","R","J","inputType","execCommand","U","clipboardData","setData","getData","z","getCopyText","onCut","onCopy","select","W","X","V","onCommandKey","selectAll","onCompositionUpdate","$readOnly","useTextareaForIME","markerRange","context","compositionStartOffset","onCompositionEnd","G","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","target","domEvent","moveToMouse","characterWidth","container","borderTopWidth","borderLeftWidth","bottom","clientHeight","onContextMenuClose","tt","textInput","scroller","$mouseHandler","isMousePressed","up","home","down","right","commands","findKeyCommand","nt","$setUserAgentForTests","anchor","$clickSelection","editor","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","inSelection","getDocumentPosition","mousedownEvent","moveToPosition","time","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","screenToTextCoordinates","getShiftKey","selectToPosition","setSelectionAnchor","scrollCursorIntoView","selectByLinesEnd","unsetStyle","focusWait","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","isScrollableBy","speed","scrollBy","stop","selectEnd","selectAllEnd","selectByWordsEnd","DefaultHandlers","__extends","setPrototypeOf","__proto__","__values","Symbol","iterator","next","done","isOpen","$element","$parentNode","$init","setText","textContent","setHtml","setPosition","setClassName","setTheme","show","hide","getHeight","offsetHeight","getWidth","parentNode","popups","addPopup","updatePopups","removePopup","sort","priority","doPopupsOverlap","return","popupManager","Tooltip","body","timeout","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","range","isOutsideOfText","$gatherData","pixelToScreenCoordinates","setDataProvider","showForRange","$registerCloseEvents","theme","addMarker","textToScreenCoordinates","pageY","lineHeight","maxWidth","pageX","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","currentTarget","classList","HoverTooltip","GutterHandler","hideTooltip","$gutterLayer","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","$pos","documentToScreenRow","showTooltip","getGutterRow","$lines","element","querySelector","$gutter","innerWidth","innerHeight","singular","plural","warning","info","$annotations","text","from","getFoldLine","$showFoldedAnnotations","concat","annotationsToSummaryString","$useSvgGutterIcons","annotationLabels","GutterTooltip","$inSelection","MouseEvent","moveCursorToPosition","layerConfig","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearInterval","setInterval","fromOrientedRange","$resetCursorStyle","types","some","dataTransfer","effectAllowed","onDragStart","cancelDrag","draggable","getReadOnly","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","insert","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","onMouseDrag","state","dragDrop","$dragEnabled","unselectable","DragdropHandler","addTouchListeners","clipboard","getUndoManager","hasUndo","replaceChild","class","action","readText","writeText","ontouchstart","ontouchend","onclick","scrollLeft","selectWord","touches","setRange","getPixelPosition","getScrollTop","onMouseEvent","scrollBarV","inner","scrollBarH","Boolean","$dragDelay","mousemove","$scrollSpeed","which","releaseMouse","mouseEvent","$mouseMoved","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","MouseHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","FoldHandler","$editor","$data","$handlers","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","args","passEvent","KeyBinding","charCodeAt","B","j","EN","ON_R","AN","R_H","RLE","DOT","doBidiReorder","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","bidiMap","currentRow","bidiUtil","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","line","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","getValue","isBidiRow","updateRowLine","updateBidiMap","onChange","lines","getDocumentRow","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","$useWrapMode","$wrapData","indent","substring","isFullWidth","getScreenTabSize","$main","substr","markAsDirty","updateCharacterWidths","$characterSize","$measureCharWidth","setShowInvisibles","setEolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","doc","removeInLine","getPosLeft","getOverwrite","getSelections","offsetToCol","BidiHandler","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","old","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","MAX_VALUE","$moveSelection","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","selectLine","moveCursorBy","wouldMoveIntoSoftTab","isTabStop","getTabSize","getNavigateWithinSoftTabs","screenToDocumentPosition","getDisplayLine","$useEmacsStyleLineStart","getDocumentLastRowColumnPosition","search","moveCursorLongWordRight","nonTokenRe","lastIndex","tokenRe","moveCursorLongWordLeft","getFoldStringAt","$shortWordEndIndex","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","lineWidgets","rowsAbove","rowCount","moveCursorToScreen","desiredColumn","getRangeOfMovements","toJSON","rangeCount","ranges","fromJSON","rangeList","toSingleRange","addRange","Selection","states","regExps","matchMappings","defaultToken","caseInsensitive","unicode","regex","token","rule","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","stack","getLineTokens","consumeLineEnd","merge","startState","unshift","tokens","Tokenizer","$rules","addRules","nextState","getRules","embedRules","$embeds","getEmbeds","normalizeRules","processed","stateName","rules","include","noEscape","keywordMap","createKeywordMapper","$keywordList","getKeywords","$keywords","TextHighlightRules","$behaviours","add","addBehaviours","inherit","getBehaviours","Behaviour","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","index","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","getCurrentTokenPosition","getCurrentTokenRange","TokenIterator","\"","'","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","findMatchingBracket","$getIndent","getTabString","$mode","$quotes","lineCommentStart","$pairQuotesAfter","closeDocComment","$matchTokenType","CstyleBehaviour","wordChars","HighlightRules","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","Infinity","getUseSoftTabs","insertInLine","floor","toggleBlockComment","getNextLineIndent","checkOutdent","autoOutdent","createWorker","createModeDelegates","$delegator","transformAction","$behaviour","completionKeywords","$createKeywordList","getCompletions","score","Mode","applyDelta","$onChange","$clipPositionToDocument","$insertRight","Anchor","insertMergedLines","setValue","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clippedPos","pos","clonePos","$clipPosition","removeNewLine","applyDeltas","revertDeltas","revertDelta","$splitAndapplyLargeDelta","$safeApplyDelta","indexToPosition","positionToIndex","Document","running","currentLine","tokenizer","$worker","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","cleanup","BackgroundTokenizer","setRegexp","clazz","regExp","cache","update","firstRow","lastRow","MAX_RANGES","drawSingleLineMarker","SearchHighlight","foldData","folds","setFoldLine","shiftRow","sameRow","startRow","endRow","foldLine","containsRow","walk","placeholder","getNextFoldTo","fold","kind","addRemoveChars","log","idxToPosition","FoldLine","$bias","pointIndex","addList","substractPoint","containsPoint","rangeAtPoint","removeAll","RangeList","subFolds","collapseChildren","addSubFold","restoreRange","Fold","Folding","getFoldsInRange","$foldData","getFoldsInRangeList","getAllFolds","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","foldAll","expandFolds","unfold","isRowFolded","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","$cloneFoldData","toggleFold","getCommentFoldRange","trim","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","children","siblings","$toggleFoldWidget","toggleFoldWidget","BracketMatch","$findClosingBracket","getMatchingBracketRanges","$brackets",")","(","]","[","{","}","<",">","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","openTag","closeTag","openTagName","closeTagName","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","$rowLengthCache","$updateInternalDataOnChange","$fromUndo","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","reset","getSelection","addSession","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","getMarkers","highlight","$searchHighlight","highlightLines","setAnnotations","getAnnotations","clearAnnotations","setUseWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","path","$modeId","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","oldMode","mode","terminate","getMode","setScrollTop","$scrollTop","isNaN","setScrollLeft","$scrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","$wrapLimit","$getStringScreenWidth","undoChanges","selectionBefore","$getUndoSelection","redoChanges","selectionAfter","setUndoSelect","indentRows","outdentRows","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","$getDisplayTokens","$computeWrapSplits","$wrapAsCode","$indentedSoftWrap","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","getScreenLength","$getWidgetScreenLength","$setFontMetrics","$enableVarChar","getCharacterWidth","undo","redo","hasRedo","addSelection","startNewGroup","wrap","$wrap","indentedSoftWrap","firstLineNumber","useWorker","useSoftTabs","tabSize","navigateWithinSoftTabs","foldStyle","overwrite","newLineMode","EditSession","$matchIterator","skipCurrent","findAll","needle","$assembleRegExp","re","$isMultiLine","preserveCase","$supportsUnicodeFlag","wholeWord","caseSensitive","$assembleMultilineRegExp","backwards","Search","bindKey","isDefault","commandKeyBinding","addCommands","$singleCommand","addCommand","removeCommand","_buildKeyHash","parseKeys","hashId","key","_addCommandToBinding","removeCommands","bindKeys","$keyChain","HashHandler","MultiHashHandler","byName","event","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","CommandManager","win","mac","description","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","exitMultiSelectMode","level","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","el","_inDocument","removeLineWidget","$updateRows","$oldWidget","$registerLineWidget","addLineWidget","html","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","getWidgetsAtRow","updateFull","fixedWidth","ceil","coverLine","config","gutterWidth","fullWidth","padding","scrollBar","LineWidgets","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","$findNearestFoldWidget","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","tab","lane","$switchLane","space","$rowIndexToRow","$blurFoldWidget","cells","childNodes","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","keyboardFocusClassName","GutterKeyboardHandler","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","GutterKeyboardEvent","getContainerElement","getTextAreaContainer","textarea","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","prevOp","previousCommand","scrollTop","scrollSelectionIntoView","animateScrolling","$mergeUndoDeltas","$mergeableCommands","mergeNextCommand","sequenceStartTime","$keybindingId","handler","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldSession","oldEditor","getSession","resize","onResize","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","getMatching","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","$enableAutoIndent","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","getFadeFoldWidgets","setGhostText","removeGhostText","$getSelectedRows","getNumberAt","isFinite","toFixed","toggleWord","$toggleWordPairs","findLinkAt","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","alignCursor","getCursorPositionScreen","navigateTo","$tryReplace","replaceAll","getLastSearchOptions","revealRange","setAutoScrollEditorIntoView","$scrollAnchor","searchBox","$pixelPos","$cursorStyle","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","cursorStyle","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","keyboardHandler","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","$composition","placeholderNode","$placeholder","content","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","showPrintMargin","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","$renderer","Editor","rev","$maxRev","$undoDepth","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","$undoStack","$rev","selections","markIgnored","ignore","getRevision","getDeltas","getChangedRanges","getChangedLines","$redoStackBaseRev","$syncRev","mark","canUndo","canRedo","bookmark","isAtBookmark","$prettyPrint","isClean","markClean","UndoManager","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","computeLineTop","computeLineHeight","$cacheCell","insertAdjacentElement","createCell","Lines","$showFoldWidgets","$updateAnnotations","gutterOffset","oldLastRow","$updateCursorRow","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","getShowLineNumbers","paddingLeft","borderRightWidth","paddingRight","Gutter","setPadding","setMarkers","markers","elt","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","drawBidiSingleLineMarker","Marker","Set","isTextToken","has","dom","$updateEolChar","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","margin","getLineHeight","$fontMetrics","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","$tabStrings","TAB_CHAR","$indentGuideRe","SPACE_CHAR","$renderLine","$renderLinesFragment","$useLineGroups","$renderToken","cloneNode","renderIndentGuide","$highlightIndentGuideMarker","indentLevel","dir","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","MAX_LINE_LENGTH","$renderOverflowMessage","$renderSimpleLine","$getFoldLineTokens","EOF_CHAR","Text","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","isCursorInView","maxHeight","$selectionMarkers","drawCursor","$setOverwrite","Cursor","setVisible","skipEvent","onScroll","coeff","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollBar","HScrollBar","VScrollWidth","HScrollHeight","parent","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","onRender","pending","changes","$recursionLimit","_flush","clear","RenderLoop","ResizeObserver","$setMeasureNodeStyles","$measureNode","$addObserver","visibility","font","$measureSizes","fontWeight","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","zoom","$initTransformMeasureNodes","els","transformCoordinates","FontMetrics","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","getContext","clearRect","compensateFoldRows","fillStyle","fillRect","Decorator","onGutterResize","$markerBack","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","cursorPos","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","setScrollMargin","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","$maxPixelHeight","desiredHeight","$gutterWidth","$getLongestLine","$stopAnimation","$calcSteps","STEPS","$timer","steps","to","scrollTo","$hasCssTransforms","$blockCursor","side","offsetX","$useTextareaForIME","markerId","addToken","removeExtraToken","$ghostText","$ghostTextWidget","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","VirtualRenderer","Worker","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","append","getBlob","URL","webkitURL","createObjectURL","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","callbacks","onmessage","nameToUrl","toUrl","$normalizePath","tlns","classname","deltaQueue","onerror","$doc","emit","err","message","code","attachToDocument","UIWorkerClient","messageBuffer","setEmitSync","WorkerClient","mainClass","othersClass","$onUpdate","onUpdate","$others","$undostack","$undoStackDepth","setup","others","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","updateMarkers","PlaceHolder","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","removeSelectionMarker","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","defaultCommands","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","getSelectionMarkers","mergeOverlappingRanges","$initRangeList","toggleBlockSelection","selectionMarkerCount","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","$reAlignText","MultiSelect","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","openingBracketBlock","closingBracketBlock","sc","onmousedown","edit","env","tagName","createEditSession","global","self","root","factory","amd","returnExports","func","ArrayIterator","_apply","Function","_call","throwsError","valueOrFalseIfThrows","isCallableWithoutNew","supportsDescriptors","functionsHaveNames","_forEach","_reduce","reduce","_filter","_some","object","force","defineProperties","forceOverride","method","_toString","isCallable","Value","getter","originalObject","targetObject","originalDescriptor","getOwnPropertyDescriptor","property","newValue","descriptor","source","properties","Prototype","supportsSubclassing","Sub","Subclass","arg","globals","getGlobal","globalIsFinite","_indexOf","_concat","_sort","_strSlice","_push","_pushApply","_shift","_max","_min","_floor","_abs","_log","_sqrt","_hasOwnProperty","noop","symbolSpecies","species","numberIsNaN","numberIsFinite","isStandardArguments","isArguments","callee","Type","overrideNative","replacement","hasSymbols","$iterator$","Reflect","$String","ES","Call","IsCallable","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","number","ToLength","len","SameValue","SameValueZero","IsIterable","GetIterator","itFn","GetMethod","it","IteratorComplete","iterResult","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","result","IteratorStep","Construct","newTarget","isES6internal","construct","proto","obj","SpeciesConstructor","defaultConstructor","CreateHTML","string","tag","attribute","ToString","p1","IsRegExp","argument","isRegExp","defineWellKnownSymbol","sym","symbolSearch","originalSearch","regexp","searcher","symbolReplace","originalReplace","replaceValue","searchValue","replacer","symbolSplit","originalSplit","limit","separator","splitter","symbolMatchExists","stringMatchIgnoresSymbolMatch","symbolMatch","originalMatch","matcher","wrapConstructor","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","addIterator","impl","implementation","createDataPropertyOrThrow","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","RangeError","cooked","callSite","rawString","raw","literalsegments","nextKey","nextSeg","nextSub","stringElements","nextIndex","0","1","StringPrototypeShims","thisStr","numTimes","half","searchString","searchStr","endPosition","codePointAt","second","startsWithRejectsRegex","startsWithHandlesInfinity","ws","trimRegexp","trimShim","nonWS","nonWSregex","isBadHexRegex","hasStringTrimBug","StringIterator","_s","_i","ArrayShims","items","mapFn","mapping","nextValue","arrayLike","iteratorResult","array","retval","orderKeys","aNumeric","bNumeric","localeCompare","ObjectIterator","ownKeys","getAllKeys","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","relativeEnd","finalItem","count","direction","predicate","list","thisArg","entries","unscopables","originalArrayPrototypeValues","getPrototypeOf","arr","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","origArrayFrom","int32sAsOne","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","originalSome","every","originalEvery","originalReduce","reduceRight","originalReduceRight","NumberShim","lacksOctalSupport","lacksBinarySupport","trimsNonWhitespace","OrigNumber","binaryRegex","octalRegex","isBinary","isOctal","hasNonWS","isBadHex","primValue","valueOf","toPrimitive","NaN","receiver","valueOfSucceeds","MIN_VALUE","NEGATIVE_INFINITY","POSITIVE_INFINITY","maxSafeInteger","EPSILON","isInteger","isSafeInteger","item","idx","FAKENULL","gpo","spo","isEnumerableOn","propertyIsEnumerable","ensureEnumerable","prop","sliceArgs","initial","desiredArgCount","assignTo","assignReducer","symbols","sourceKeys","getOwnPropertySymbols","ObjectShims","is","thrower","preventExtensions","ES5ObjectShims","magic","checkArgs","polyfill","originalObjectKeys","cachedWindowNames","originalObjectGetOwnPropertyNames","val","originalObjectGetOwnPropertyDescriptor","seal","originalObjectSeal","isSealed","originalObjectIsSealed","originalObjectFreeze","isFrozen","originalObjectIsFrozen","originalObjectPreventExtensions","isExtensible","originalObjectIsExtensible","originalGetProto","desc","hasFlags","ignoreCase","multiline","sticky","regExpSupportsFlagsWithRegex","regExpNeedsToSupportSymbolMatch","flagsGetter","sourceDesc","sourceGetter","OrigRegExp","RegExpShim","pattern","flags","patternIsRegExp","$input","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","inverseEpsilon","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","numberCLZ","clz","MathShims","acosh","asinh","atanh","negate","exp","clz32","LOG2E","cosh","expm1","sum","hypot","largest","log2","log10","LOG10E","log1p","sign","sinh","tanh","trunc","imul","al","bl","fround","cbrt","expm1OfTen","origMathRound","roundHandlesBoundaryConditions","roundDoesNotIncreaseIntegers","num","origImul","thenable","PromiseShim","IsPromise","promise","_promise","makeZeroTimeout","PromiseCapability","capability","resolve","reject","timeouts","messageName","fn","pr","Promise$prototype","Promise$prototype$then","enqueue","setImmediate","process","task","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_FAKE_CAPABILITY","enqueuePromiseReactionJob","promiseReactionJob","promiseCapability","handlerResult","fulfillPromise","reactionLength","fulfillReactionHandler0","reactionCapability0","rejectReactions0","rejectPromise","reason","rejectReactionHandler0","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","optimizedThen","resolvingFunctions","resolver","_promiseAllResolver","remaining","alreadyCalled","iterable","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseAll","exception","ee","race","performPromiseRace","rejectFunc","resolveFunc","catch","onRejected","onFulfilled","fulfillReactionHandler","rejectReactionHandler","accept","defer","chain","promiseSupportsSubclassing","promiseRequiresObjectContext","promiseResolveBroken","p2","getsThenSynchronously","BadResolverPromise","executor","hasBadResolverPromise","promiseIgnoresNonFunctionThenCallbacks","origAll","origRace","origResolve","origReject","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","collectionShims","Map","empty","MapEntry","prev","isRemoved","Map$prototype","requireMapSlot","_es6map","MapIterator","_head","MapShim","_storage","_size","fkey","delete","Set$prototype","requireSetSlot","_es6set","SetShim","[[SetData]]","ensureMap","decodeKey","size","hasFKey","entireSet","OrigMapNoArgs","testMap","mapUsesSameValueZero","mapSupportsChaining","origMapSet","origMapGet","origMapHas","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","mapSupportsSubclassing","mapFailsToSupportSubclassing","mapRequiresNew","OrigMap","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","enumerate","callAndCatchException","internalGet","internalSet","propertyKey","objectDotGetPrototypeOf","lastProto","willCreateCircularPrototype","shim","originalReflectGetProto","basic","extensible","dateToString","stringHTMLshims","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","shouldOverwrite","output","quotesCount","JSONstringifiesSymbols","stringify","JSON","JSONstringifyAcceptsObjectSymbol","origStringify","parsedValue","replaceFn","noGlobal","class2type","hasOwn","support","jQuery","selector","rmsPrefix","rdashAlpha","fcamelCase","letter","isArraylike","isWindow","jquery","toArray","pushStack","elems","ret","prevObject","each","eq","deep","isFunction","options","copy","copyIsArray","isPlainObject","expando","random","isReady","msg","isNumeric","isEmptyObject","globalEval","script","indirect","eval","camelCase","nodeName","rtrim","makeArray","results","inArray","grep","invert","matches","callbackExpect","guid","proxy","tmp","Sizzle","Expr","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","MAX_NEGATIVE","push_native","booleans","whitespace","characterEncoding","identifier","pseudos","rwhitespace","rcomma","rcombinators","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rnative","rquickExpr","rsibling","rescape","runescape","funescape","escaped","escapedWhitespace","high","unloadHandler","seed","groups","nid","newContext","newSelector","getElementsByClassName","qsa","toSelector","testContext","qsaError","cacheLength","markFunction","assert","div","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","matchIndexes","node","hasCompare","attachEvent","getById","getElementsByName","attrId","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","expr","elements","rattributeQuotes","attr","specified","uniqueSort","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo","relative"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","operator","check","what","simple","forward","ofType","xml","outerCache","nodeIndex","useCache","pseudo","setFilters","matched","not","unmatched","innerText","lang","elemLang","hash","enabled","disabled","checked","selected","selectedIndex","header","rheader","even","odd","lt","gt","radio","checkbox","file","password","image","submit","addCombinator","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","newUnmatched","mapped","postFilter","setMatcher","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","condense","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","sibling","until","truncate","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","readyList","rnotwhite","optionsCache","completed","memory","fired","firing","firingStart","firingLength","flag","fire","firingIndex","stopOnFalse","disable","lock","locked","fireWith","Deferred","tuples","Callbacks","always","deferred","fail","fns","newDefer","tuple","returned","progress","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","notifyWith","resolveWith","readyWait","holdReady","hold","wait","triggerHandler","access","chainable","emptyGet","bulk","Data","uid","acceptData","owner","accepts","unlock","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","pnum","cssExpand","isHidden","css","rcheckableType","checkClone","noCloneChecked","strundefined","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","handleObjIn","eventHandle","events","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","bubbleType","ontype","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","isImmediatePropagationStopped","postDispatch","sel","props","fixHooks","keyHooks","charCode","mouseHooks","eventDoc","clientLeft","clientTop","originalEvent","fixHook","load","click","beforeunload","simulate","bubble","isSimulated","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","attaches","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","thead","col","tr","td","manipulationTarget","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","getAll","optgroup","tbody","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","fragment","nodes","cleanData","domManip","prepend","before","after","keepData","replaceWith","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","iframe","elemdisplay","actualDisplay","getDefaultComputedStyle","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","opener","curCSS","computed","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","computePixelPositionAndBoxSizingReliable","divStyle","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","marginRight","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","cssNormalTransform","letterSpacing","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","showHide","Tween","easing","cssHooks","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","order","orphans","widows","cssProps","float","border","prefix","expand","expanded","parts","toggle","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","swing","cos","PI","fxNow","timerId","opt","rfxtypes","rfxnum","rrun","animationPrefilters","opts","oldfire","anim","dataShow","unqueued","overflowX","overflowY","createTween","tweeners","*","scale","maxIterations","createFxNow","genFx","includeWidth","animation","collection","Animation","stopped","tick","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","rejectWith","propFilter","timer","complete","tweener","prefilter","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","slow","fast","checkOn","optSelected","optDisabled","radioValue","boolHook","removeAttr","nType","attrHooks","nodeHook","propName","attrNames","propFix","rfocusable","removeProp","for","hasAttribute","rclass","addClass","classes","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","unbind","delegate","undelegate","nonce","rquery","parse","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","ajaxLocParts","ajaxLocation","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","jqXHR","flatOptions","ajaxSettings","active","lastModified","etag","isLocal","processData","async","contentType","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxExtend","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","status","abort","statusText","finalText","success","crossDomain","param","traditional","inspectPrefiltersOrTransports","hasContent","ifModified","headers","beforeSend","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSuccessStatus","1223","cors","xhrSupported","username","xhrFields","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","box","pageYOffset","pageXOffset","offsetParent","parentOffset","Height","Width","","defaultExtra","funcName","andSelf","_jQuery","_$","$","noConflict","minErr","ErrorConstructor","paramPrefix","templateArgs","shiftedIndex","toDebugString","REGEX_STRING_REGEXP","VALIDITY_STATE_PROPERTY","lowercase","isString","uppercase","ch","msie","jqLite","angularModule","ngMinErr","angular","isArrayLike","isNumber","isPrimitive","isBlankObject","forEachSorted","reverseParams","iteratorFn","nextUid","setHashKey","$$hashKey","baseExtend","dst","objs","ii","isObject","jj","isDate","isElement","toInt","str","identity","valueFn","hasCustomToString","isUndefined","isDefined","documentMode","$inject","isScope","$evalAsync","$watch","isBoolean","isPromiseLike","TYPED_ARRAY_REGEXP","escapeForRegexp","nodeName_","destination","stackSource","stackDest","copyRecurse","copyElement","needsRecurse","buffer","copied","ArrayBuffer","byteLength","Uint8Array","copyType","shallowCopy","equals","o1","o2","keySet","t1","getTime","csp","ngCspElement","ngCspAttribute","noUnsafeEval","noInlineStyle","jq","name_","ngAttrPrefixes","array1","array2","startIndex","curryArgs","toJsonReplacer","toJson","pretty","fromJson","ALL_COLONS","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","convertTimezoneToLocal","date","minutes","dateTimezoneOffset","getTimezoneOffset","timezoneOffset","setMinutes","getMinutes","startingTag","elemHtml","NODE_TYPE_TEXT","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","toKeyValue","arrayValue","encodeUriQuery","encodeUriSegment","pctEncodeSpaces","angularInit","bootstrap","appElement","candidate","strictDi","ngAttr","getNgAttribute","doBootstrap","injector","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","scope","$apply","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","reload","getTestability","rootElement","SNAKE_CASE_REGEXP","snake_case","bindJQueryFired","assertArg","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","bindFnToScope","lastInstance","getBlockNodes","blockNodes","endNode","NODE_TYPE_ELEMENT","NODE_TYPE_COMMENT","NODE_TYPE_DOCUMENT","NODE_TYPE_DOCUMENT_FRAGMENT","seen","full","major","minor","dot","JQLite","jqCache","jqId","addEventListenerFn","removeEventListenerFn","SPECIAL_CHARS_REGEXP","MOZ_HACK_REGEXP","MOUSE_EVENT_MAP","jqLiteMinErr","SINGLE_TAG_REGEXP","HTML_REGEXP","TAG_NAME_REGEXP","jqLiteIsTextNode","jqLiteAcceptsData","jqLiteBuildFragment","XHTML_TAG_REGEXP","jqLiteWrapNode","wrapper","jqLiteContains","Node","argIsString","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","descendants","jqLiteOff","unsupported","expandoStore","jqLiteExpandoStore","removeHandler","listenerFns","expandoId","ng339","$destroy","createIfNecessary","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","jqLiteRemoveClass","cssClasses","jqLiteAddClass","existingClasses","jqLiteController","jqLiteInheritedData","names","jqLiteEmpty","jqLiteRemove","JQLitePrototype","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","ALIASED_ATTR","ngMaxlength","ngMin","ngMax","ngPattern","getBooleanAttrName","booleanAttr","defaultHandlerWrapper","specialMouseHandlerWrapper","$$jqLiteProvider","$get","hashKey","nextUidFn","objType","HashMap","isolatedUid","put","inheritedData","isolateScope","controller","lowercasedName","getNamedItem","$dv","multiple","arg1","arg2","nodeCount","eventHandler","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","handlerWrapper","specialHandlerWrapper","addHandler","noEventListener","onFn","replaceNode","child","wrapNode","newElement","condition","classCondition","nextElementSibling","extraParameters","dummyEvent","eventFnsCopy","handlerArgs","eventName","arg3","$$HashMapProvider","ARROW_ARG","FN_ARGS","FN_ARG_SPLIT","FN_ARG","STRIP_COMMENTS","$injectorMinErr","extractArgs","fnText","modulesToLoad","INSTANTIATING","providerSuffix","loadedModules","providerCache","provider","supportObject","service","$injector","instantiate","constant","decorator","serviceName","decorFn","origProvider","providerInjector","orig$get","origInstance","instanceInjector","$delegate","createInternalInjector","caller","instanceCache","protoInstanceInjector","loadModules","moduleFn","runBlocks","requires","_runBlocks","runInvokeQueue","_invokeQueue","_configBlocks","invokeArgs","provider_","factoryFn","enforce","getService","injectionArgs","locals","$$annotate","ctor","annotate","$AnchorScrollProvider","autoScrollingEnabled","disableAutoScrolling","$window","$location","$rootScope","scroll","yOffset","getYOffset","elemTop","elm","newVal","oldVal","underscore","$animateMinErr","ELEMENT_NODE","NG_ANIMATE_CLASSNAME","mergeClasses","prepareAnimateOptions","$$CoreAnimateJsProvider","$$CoreAnimateQueueProvider","postDigestQueue","postDigestElements","$$AnimateRunner","pin","domOperation","classesAdded","classesRemoved","updateData","$$postDigest","handleCSSClassChanges","runner","changed","existing","klass","splitClasses","toAdd","toRemove","$AnimateProvider","$$registeredAnimations","register","classNameFilter","expression","$$classNameFilter","$$animateQueue","domInsert","afterElement","afterNode","extractElementNode","previousElementSibling","move","leave","addclass","setClass","tempClasses","$$AnimateAsyncRunFactoryProvider","$$rAF","waitQueue","waitForTick","passed","$q","$sniffer","$$animateAsyncRun","$document","$timeout","AnimateRunner","setHost","rafTick","_doneCallbacks","_tick","_state","runners","onProgress","getPromise","resolveHandler","rejectHandler","finally","pause","resume","_resolve","$CoreAnimateCssProvider","initialOptions","$$prepared","cleanupStyles","closed","applyAnimationContents","Browser","$log","history","pendingDeferIds","isMock","outstandingRequestCount","outstandingRequestCallbacks","completeOutstandingRequest","$$completeOutstandingRequest","$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","cachedState","lastHistoryState","lastBrowserUrl","baseElement","pendingLocation","cacheState","sameState","sameBase","stripHash","urlChangeListeners","urlChangeInit","cacheStateAndFireUrlChange","fireUrlChange","lastCachedState","getCurrentState","listener","onUrlChange","$$applicationDestroyed","$$checkUrlChange","baseHref","deferId","$BrowserProvider","caches","cacheFactory","cacheId","stats","capacity","lruHash","freshEnd","refresh","staleEnd","lruEntry","originalCleanData","jqName","counter","$$minErr","$$csp","ensure","configFn","invokeQueue","configBlocks","invokeLater","moduleInstance","invokeLaterAndSetModuleName","directive","component","block","insertMethod","recipeName","factoryFunction","$$moduleName","setupModuleLoader","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","htmlAnchorDirective","inputDirective","form","formDirective","scriptDirective","selectDirective","styleDirective","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","patternDirective","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$animate","$animateCss","$$animateJs","$$AnimateRunnerFactoryProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$xhrFactory","$xhrFactoryProvider","$LocationProvider","$LogProvider","$parse","$ParseProvider","$RootScopeProvider","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$SnifferProvider","$templateCache","$TemplateCacheProvider","$$testability","$$TestabilityProvider","$TimeoutProvider","$WindowProvider","$$RAFProvider","$$jqLite","$$HashMap","$$cookieReader","$$CookieReaderProvider"],"mappings":"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AA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,GAAA,EAAA,GAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,GAAA,EAAA,GAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,GAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,GAAA,EAAA,EAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,EAAA,EAAA,EAAA,EAAA,GAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,GAAA,EAAA,EAAA,GAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,GAAA,EAAA,GAAA,GAAA,EAAA,GAAA,GAAA,GAAA,EAAA,EAAA,EAAA,GAAA,GAAA,EAAA,EAAA,GAAA,GAAA,IAAA,GAAA,IAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,EAAA,GAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EA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","file":"vendor.js","sourcesContent":["'use strict';\n\n//\n// ARRAY\n//\n\n// removes an object from the array\nArray.prototype.removeObject = function(obj) {\n  var idx = this.indexOf(obj);\n  if (idx !== -1) {\n    this.splice(idx, 1);\n  }\n};\n\n// removes an object by a given property\nArray.prototype.removeObjectByProperty = function(property, propertyValue) {\n\n  var foundItem = null;\n  this.forEach(function(item) {\n    if (item[property] === propertyValue) {\n      foundItem = item;\n    }\n  });\n\n  this.removeObject(foundItem);\n};\n\n// replaces an object by a given property\nArray.prototype.replaceObjectByProperty = function(property, propertyValue, updatedObject) {\n\n  var foundItem = null;\n  this.forEach(function(item) {\n    if (item[property] === propertyValue) {\n      foundItem = item;\n    }\n  });\n\n  if (!foundItem) { return; }\n\n  var idxOfItem = this.indexOf(foundItem);\n  if (idxOfItem === -1 ) { return; }\n\n  this[idxOfItem] = updatedObject;\n};\n\n\nArray.prototype.sortOn = function(key){\n  this.sort(function(a, b){\n    if(a[key] < b[key]){\n      return -1;\n    }else if(a[key] > b[key]){\n      return 1;\n    }\n    return 0;\n  });\n\n  return this;\n};\n\nArray.prototype.sortSimple = function(){\n  this.sort(function(a, b){\n    if(a < b){\n      return -1;\n    }else if(a > b){\n      return 1;\n    }\n    return 0;\n  });\n\n  return this;\n};\n\n\n// Generates an index by a single property. This property must be an unique key\nArray.prototype.buildIndex = function(objectKey) {\n  var selfArray = this;\n\n  var newObject = {};\n\n  selfArray.forEach(function(element) {\n\n    // get the key value\n    var keyValue = element[objectKey];\n\n    // set the value\n    newObject[keyValue] = element;\n  });\n\n  return newObject;\n};\n\nArray.prototype.isSame = function(array2) {\n  var array1 = this;\n  return (array1.length == array2.length) && array1.every(function(element, index) {\n    return element === array2[index];\n  });\n};\n\nArray.prototype.appendArray = function(srcArray) {\n  this.push.apply(this, srcArray);\n};\n\n\nfunction executeAndReduceArray(workingArray, cb, q) {\n  if (workingArray.length === 0) { return q.resolve(); }\n\n  return q.when(cb(workingArray[0])).then(function() {\n\n    // resuce the array\n    workingArray.splice(0, 1);\n\n    // and call us again\n    return q.when(executeAndReduceArray(workingArray, cb, q));\n  });\n}\n\nArray.prototype.forEachExecuteAsyncOperationSequential = function(q, cb) {\n\n  // copy all items on a working array\n  var workingArray = []; workingArray.appendArray(this);\n\n  // execute and reduce\n  return executeAndReduceArray(workingArray, cb, q);\n};\n\nArray.prototype.forEachExecuteAsyncOperationParallel = function(q, cb) {\n\n  // remeber the promises\n  var promissesArray = [];\n\n  // add the action\n  this.forEach(function(item) {\n    promissesArray.push(q.when(cb(item)));\n  });\n\n  // wait until all is done\n  return q.all(promissesArray);\n};\n\n//\n// Date\n//\nDate.prototype.currentMonthDefinition = function() {\n  return this.getFullYear() + '-' + ('0' + (this.getMonth() + 1)).slice(-2);\n};\n\nDate.prototype.currentDayDefinition = function() {\n  return this.currentMonthDefinition() + '-' + ('0' + (this.getDate() + 1)).slice(-2);\n};\n\nDate.prototype.addDays = function(days)\n{\n  var dat = new Date(this.getTime());\n  dat.setDate(this.getDate() + days);\n  return dat;\n};\n\nDate.isLeapYear = function (year) {\n  return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n};\n\nDate.getDaysInMonth = function (year, month) {\n  return [31, (Date.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1];\n};\n\n//\n// String\n//\nString.prototype.capitalizeFirstLetter = function() {\n  return this.charAt(0).toUpperCase() + this.slice(1);\n};\n\nString.prototype.downCaseFirstLetter = function() {\n  return this.charAt(0).toLowerCase() + this.slice(1);\n};\n\nString.prototype.removeHeading = function(s) {\n  if (this.indexOf(s) === 0) {\n    return this.substring(s.length);\n  } else {\n    return this;\n  }\n};\n\nString.prototype.removeTrailing = function(s) {\n  if (this.endsWith(s)) {\n    return this.substring(0, this.length - s.length);\n  } else {\n    return this;\n  }\n};\n\nString.prototype.toHHMMSS = function () {\n  var sec_num = parseInt(this, 10); // don't forget the second param\n  var hours   = Math.floor(sec_num / 3600);\n  var minutes = Math.floor((sec_num - (hours * 3600)) / 60);\n  var seconds = sec_num - (hours * 3600) - (minutes * 60);\n\n  if (hours   < 10) {hours   = \"0\"+hours;}\n  if (minutes < 10) {minutes = \"0\"+minutes;}\n  if (seconds < 10) {seconds = \"0\"+seconds;}\n  return hours+':'+minutes+':'+seconds;\n};\n","'use strict';\n\n/**\n * @ngdoc overview\n * @name azureCostsFeApp\n * @description\n * # azureCostsFeApp\n *\n * Main module of the application.\n */\nangular\n  .module('azureCostsFeApp', [\n    'app.env',\n    'ngHelperAirbrake',        \n    'ngAnimate',\n    'ngCookies',\n    'ngResource',\n    'ngSanitize',\n    'ngTouch',\n    'ngHelperBusy',\n    'ngHelperCropResize',\n    'angularMoment',\n    'ngHelperUserVoice',\n    'ngHelperDynamicTemplateLoader',\n    'ng.deviceDetector',\n    'ui.bootstrap',\n    'uiSwitch',\n    'angular-jwt',\n    'ngHelperToolbar',\n    'ui.gravatar',\n    'xeditable',\n    'minicolors',\n    'ui.ace',\n    'ui.router',\n    'gridster',\n    'uuid',\n    'base64',\n    'ngToast',\n    'timer'\n  ])\n.config(function ($stateProvider, $urlRouterProvider, $locationProvider, $uservoiceProvider, $dynamicTemplateLoaderProvider, $airbrakeProvider, ngToastProvider, $sceDelegateProvider, envDeployment) {\n\n  console.log(\"Application is loading\");\n\n  // define our trusted resources\n  $sceDelegateProvider.resourceUrlWhitelist([\n    // Allow same origin resource loads.\n    'self',\n\n    // Allow loading from our assets domain.\n    'https://' + envDeployment.cdnHostDev + '/**',\n    'https://' + envDeployment.cdnHostProd + '/**'\n  ]);\n\n  // configure airbrake\n  if (location.host.indexOf('costs-test.azurewebsites.net') !== -1) {\n    $airbrakeProvider.setProject('316459', 'd61ff188652159fa8077e92ec72b0884', 'test');\n  } else if (location.host.indexOf('azure-costs.com') !== -1 || location.host.indexOf('azure-costs.de') !== -1 || location.host.indexOf('cloud-costs.com') !== -1) {\n    // set the airbrake project id\n    $airbrakeProvider.setProject('316459', 'd61ff188652159fa8077e92ec72b0884', 'production');\n  }\n\n  // set html5 mode\n  $locationProvider.html5Mode(true);\n\n  // Register the HTTP interceptors\n  $dynamicTemplateLoaderProvider.registerInterceptors();\n\n  // Configure the UserVoice provider\n  $uservoiceProvider.setSubDomain('azurecostmonitor');\n  $uservoiceProvider.setApiKey('g0PclZtSbWOApdniE89ZLw');\n\n  // configure the toast\n  ngToastProvider.configure({\n    animation: 'fade',\n    verticalPosition: 'bottom',\n    horizontalPosition: 'left',\n    dismissButton: true\n  });\n\n  // default route\n  $urlRouterProvider.otherwise('/');\n\n  // routing states\n  $stateProvider\n\n    // helper state for unauthorized\n    .state('public', {\n      abstract: true,\n      templateUrl: 'views/ea-public-area.html',\n      controller: 'EaPublicAreaCtrl'\n    })\n\n    // Public Pages\n    .state('public.landing', {\n      url: '/?offline',\n      template: '<div></div>',\n      controller: 'EaSplashCtrl'\n    }).state('public.signin', {\n      url: '/signin?team&enrollment&initial&idp&csp&demo',\n      templateUrl: 'views/ea-signin.html',\n      controller: 'EaSignInCtrl'\n    }).state('public.debuggerCsp', {\n      url: '/debugger/csp',\n      templateUrl: 'views/debugger/csp.html',\n      controller: 'EaDebuggerCspCtrl'\n    })\n\n    // Used SSO\n    .state('ssoCallback', {\n      url: '/sso/callback?state&access_token&server_error',\n      templateUrl: 'views/sso/ea-callback.html',\n      controller: 'EaSSOCallbackCtrl'\n    })\n      // SSO\n    .state('ssoFinish', {\n      url: '/sso/finish?redirect&access_token',\n      templateUrl: 'views/sso/ea-idp.html',\n      controller: 'EaSSOFinishCtrl'\n    }).state('ssoAccessDenied', {\n      url: '/sso/access_denied',\n      templateUrl: 'views/sso/ea-sso-access-denied.html',\n      controller: 'EaSSOAccessDeniedCtrl'\n    })\n\n    // helper state for authorizing\n    .state('authorized', {\n      abstract: true,\n      templateUrl: 'views/ea-secured-area.html',\n      controller: 'EaSecuredAreaCtrl',\n      resolve: {\n        '$eaCurrentSession': ['$eaSession2', function($eaSession2) {\n          return $eaSession2.lazy();\n        }]\n      }\n    })\n\n    // Global Add Report\n    .state('authorized.reportAdd', {\n      url: '/report/add?teamid',\n      templateUrl: 'views/add/ea-add.html',\n      controller: 'EaAddCtrl'\n    })\n    .state('authorized.reportAdd.step01', {\n      url: '/step01',\n      templateUrl: 'views/add/ea-add-step01.html',\n      controller: 'EaAddStep01Ctrl'\n    })\n    .state('authorized.reportAdd.step02-ea', {\n      url: '/step02/ea?team',\n      templateUrl: 'views/add/ea-add-step02-ea.html',\n      controller: 'EaAddStep02EaCtrl'\n    })\n    .state('authorized.reportAdd.step02-rate', {\n      url: '/step02/rate?team&enrollment&csp&currency',\n      templateUrl: 'views/add/ea-add-step02-rate.html',\n      controller: 'EaAddStep02RateCtrl'\n    })\n    .state('authorized.reportAdd.step02-rate-connect', {\n      url: '/step02/rate-connect?team&enrollment&csp',\n      templateUrl: 'views/add/ea-add-step02-rate-connect.html',\n      controller: 'EaAddStep02RateConnectCtrl'\n    })\n    .state('authorized.reportAdd.step02-costmgnt', {\n      url: '/step02/costmgnt?team',\n      templateUrl: 'views/add/ea-add-step02-costmgnt.html',\n      controller: 'EaAddStep02CostMgntCtrl'\n    })\n    .state('authorized.reportAdd.step03', {\n      url: '/step03?team&enrollment&csp',\n      templateUrl: 'views/add/ea-add-step03.html',\n      controller: 'EaAddStep03Ctrl'\n    })\n\n    // Profile related things\n    .state('authorized.profileBilling', {\n      url: '/billing',\n      templateUrl: 'views/billing/ea-billing.html',\n      controller: 'EaBillingCtrl'\n    }).state('authorized.profileBillingStartTrial', {\n      url: '/billing/starttrial',\n      templateUrl: 'views/billing/ea-start-trial.html',\n      controller: 'EaBillingStartTrialCtrl'\n    }).state('authorized.profileBillingUpgradeEdition', {\n      url: '/billing/upgradeedition',\n      templateUrl: 'views/billing/ea-upgrade-edition.html',\n      controller: 'EaBillingUpgradeEditionCtrl'\n    }).state('authorized.profileBillingServiceProvider', {\n      url: '/billing/serviceprovider',\n      templateUrl: 'views/billing/ea-service-provider.html',\n      controller: 'EaBillingServiceProviderCtrl'\n    })\n\n    // Teams related things\n    .state('authorized.teamsMigrate', {\n      url: '/teams/migrate',\n      templateUrl: 'views/teams/ea-team-migrate.html',\n      controller: 'EaTeamMigrateCtrl'\n    }).state('authorized.teamsInvitationAccept', {\n      url: '/teams/invitation/accept',\n      templateUrl: 'views/teams/ea-team-invite-accept.html',\n      controller: 'EaTeamInviteAcceptCtrl'\n    }).state('authorized.teamsManage', {\n      url: '/teams/:teamid/manage',\n      templateUrl: 'views/teams/manage/ea-team-manage.html',\n      controller: 'EaTeamManageCtrl'\n    }).state('authorized.teamsManageAADLink', {\n      url: '/teams/:teamid/manage/aad/link?tid&scope',\n      templateUrl: 'views/teams/manage/aad/ea-team-link-aad.html',\n      controller: 'EaTeamLinkAADCtrl'\n    }).state('authorized.teamsManageAADEdit', {\n      url: '/teams/:teamid/manage/aad/edit',\n      templateUrl: 'views/teams/manage/aad/ea-team-edit-aad.html',\n      controller: 'EaTeamEditAADCtrl'\n    }).state('authorized.teamsManageBuckets', {\n      url: '/teams/:teamid/manage/buckets',\n      templateUrl: 'views/teams/manage/buckets/ea-team-buckets.html',\n      controller: 'EaTeamBucketsCtrl'\n    }).state('authorized.teamsManageSettings', {\n      url: '/teams/:teamid/manage/settings',\n      templateUrl: 'views/teams/manage/settings/ea-team-settings.html',\n      controller: 'EaTeamSettingsCtrl'\n    })\n\n    // Teams related things (v2)\n    .state('authorized.teams', {\n      abstract: true,\n      url: '/teams/:teamid',\n      template: '<div ui-view></div>'\n    }).state('authorized.teams.dashboards', {\n      url: '/dashboards?initial&active&cycle&day&nomargin&version',\n      templateUrl: 'views/teams/dashboards/ea-dashboards.html',\n      controller: 'EaDashboardsCtrl'\n    }).state('authorized.teams.contracts', {\n      abstract: true,\n      url: '/contracts',\n      template: '<div ui-view></div>'\n    }).state('authorized.teams.contracts.add', {\n      url: '/add',\n      templateUrl: 'views/teams/contracts/cc-add-contract.html',\n      controller: 'CcAddContractCtrl'\n    }).state('authorized.teams.contracts.add-aws', {\n      url: '/aws',\n      templateUrl: 'views/teams/contracts/aws/cc-aws.html',\n      controller: 'CcAddAwsContractCtrl'\n    }).state('authorized.teams.contracts.add-aws.prepare', {\n      url: '/prepare',\n      templateUrl: 'views/teams/contracts/aws/cc-aws-prepare.html',\n      controller: 'CcAddAwsContractPrepareCtrl'\n    }).state('authorized.teams.contracts.add-aws.connect', {\n      url: '/connect',\n      templateUrl: 'views/teams/contracts/aws/cc-aws-connect.html',\n      controller: 'CcAddAwsContractConnectCtrl'\n    }).state('authorized.teams.contracts.add-aws.finish', {\n      url: '/finish?cid',\n      templateUrl: 'views/teams/contracts/aws/cc-aws-dashboard.html',\n      controller: 'CcAddAwsContractDashboardCtrl'\n    }).state('authorized.teams.contracts.add-gcp', {\n      url: '/gcp',\n      templateUrl: 'views/teams/contracts/gcp/cc-gcp.html',\n      controller: 'CcAddGcpContractCtrl'\n    }).state('authorized.teams.contracts.add-gcp.prepare', {\n      url: '/prepare',\n      templateUrl: 'views/teams/contracts/gcp/cc-gcp-prepare.html',\n      controller: 'CcAddGcpContractPrepareCtrl'\n    }).state('authorized.teams.contracts.add-gcp.connect', {\n      url: '/connect',\n      templateUrl: 'views/teams/contracts/gcp/cc-gcp-connect.html',\n      controller: 'CcAddGcpContractConnectCtrl'\n    }).state('authorized.teams.contracts.add-gcp.finish', {\n      url: '/finish?cid',\n      templateUrl: 'views/teams/contracts/gcp/cc-gcp-dashboard.html',\n      controller: 'CcAddGcpContractDashboardCtrl'\n    }).state('authorized.teams.rimanagement', {\n      url: '/rimanagement?contract&service',\n      templateUrl: 'views/teams/rimanagement/ea-rimanagement.html',\n      controller: 'EaRiManagementCtrl'\n    })\n\n    // CSP Init\n    .state('authorized.cspinit', {\n      url: '/csp',\n      templateUrl: 'views/csp/ac-csp-init.html',\n      controller: 'AcCspInitCtrl',\n      resolve: {\n        '$cspFeatureEnabled': ['$eaConfig', '$q', function ($eaConfig, $q) {\n          return $eaConfig.verifyFeature('csp');\n        }]\n      }\n    })\n    // CSP\n    .state('authorized.csp', {\n      url: '/csp/:resellerId',\n      template: '<div><div ng-if=\"Profile\" ui-view></div></div>',\n      controller: 'AcCspCtrl',\n      abstract: true,\n      resolve: {\n        '$cspFeatureEnabled': ['$eaConfig', '$q', function ($eaConfig, $q) {\n          return $eaConfig.verifyFeature('csp');\n        }]\n      }\n    }).state('authorized.csp.accounts', {\n      url: '/accounts?version&active',\n      templateUrl: 'views/csp/ac-csp-accounts.html',\n      controller: 'AcCspAccountsCtrl'\n    }).state('authorized.csp.gsi', {\n      url: '/integrators',\n      templateUrl: 'views/csp/ac-csp-gsi.html',\n      controller: 'AcCspGsiCtrl'\n    }).state('authorized.csp.wadd', {\n      url: '/accounts/add',\n      templateUrl: 'views/csp/add/ac-csp-add.html',\n      controller: 'AcCspAddCtrl'\n    }).state('authorized.csp.wadd.step01', {\n      url: '/step01',\n      templateUrl: 'views/csp/add/ac-csp-add-step01.html',\n      controller: 'AcCspAddStep01Ctrl'\n    }).state('authorized.csp.wadd.step02-t1', {\n      url: '/step02/t1',\n      templateUrl: 'views/csp/add/ac-csp-add-step02-t1.html',\n      controller: 'AcCspAddStep02T1Ctrl'\n    }).state('authorized.csp.wadd.step02-t2', {\n      url: '/step02/t2',\n      templateUrl: 'views/csp/add/ac-csp-add-step02-t2.html',\n      controller: 'AcCspAddStep02T2Ctrl'\n    }).state('authorized.csp.wadd.step02-ea', {\n      url: '/step02/ea',\n      templateUrl: 'views/csp/add/ac-csp-add-step02-ea.html',\n      controller: 'AcCspAddStep02EACtrl'\n    }).state('authorized.csp.wadd.step02-aws', {\n      url: '/step02/aws',\n      templateUrl: 'views/csp/add/ac-csp-add-step02-aws.html',\n      controller: 'AcCspAddStep02AWSCtrl'\n    }).state('authorized.csp.wadd.step02-v1', {\n      url: '/step02/v1',\n      templateUrl: 'views/csp/add/ac-csp-add-step02-v1.html',\n      controller: 'AcCspAddStep02V1Ctrl'\n    }).state('authorized.csp.wadd.step02-demo', {\n      url: '/step02/demo',\n      templateUrl: 'views/csp/add/ac-csp-add-step02-demo.html',\n      controller: 'AcCspAddStep02DemoCtrl'\n    }).state('authorized.csp.wadd.step03', {\n      url: '/step03',\n      templateUrl: 'views/csp/add/ac-csp-add-step03.html',\n      controller: 'AcCspAddStep03Ctrl'\n    }).state('authorized.csp.resellermanagement', {\n      url: '/resellers',\n      templateUrl: 'views/csp/resellers/ac-csp-reseller-management.html',\n      controller: 'AcCspResellerManagementCtrl'\n    })\n\n    // Admin things\n    .state('authorized.admin', {\n      abstract: true,\n      url: '/admin',\n      templateUrl: 'views/admin/ea-admin.html',\n      controller: 'EaAdminCtrl'\n    }).state('authorized.admin.contracts', {\n      url: '/contracts',\n      templateUrl: 'views/admin/ea-admin-contracts.html',\n      controller: 'EaAdminContractsCtrl'\n    }).state('authorized.admin.users', {\n      url: '/users',\n      templateUrl: 'views/admin/ea-admin-users.html',\n      controller: 'EaAdminUsersCtrl'\n    }).state('authorized.admin.jobs', {\n      url: '/jobs',\n      templateUrl: 'views/admin/ea-admin-jobs.html',\n      controller: 'EaAdminJobsCtrl'\n    }).state('authorized.admin.jobs-details', {\n      url: '/jobs/byhash/:jobpartition/details',\n      templateUrl: 'views/admin/ea-admin-jobs-details.html',\n      controller: 'EaAdminJobsDetailsCtrl'\n    }).state('authorized.admin.jobs-details-advanced', {\n      url: '/jobs/bymonth/:jobmonth/partition/:jobpartition/details',\n      templateUrl: 'views/admin/ea-admin-jobs-details.html',\n      controller: 'EaAdminJobsDetailsCtrl'\n    }).state('authorized.admin.jobs-details-old', {\n      url: '/jobs/:jobpartition/details',\n      templateUrl: 'views/admin/ea-admin-jobs-details.html',\n      controller: 'EaAdminJobsDetailsCtrl'\n    });\n  })\n  .run(function($airbrake, $http, $dynamicTemplateLoader, $eaTemplateCachingStrategy, $location, $window, editableOptions, $eaSession2, $rootScope, $eaBranding, $eaConfig) {\n\n      // should we every use the 127.0.0.1 redirect us to localhost\n      if ($location.$$host === '127.0.0.1') {\n        $window.location = $location.absUrl().replace('http://127.0.0.1', 'http://localhost');\n        return;\n      }\n      \n      // configure xeditable\n      editableOptions.theme = 'bs3';\n\n      // configure the template loader\n      $dynamicTemplateLoader.setCachingStrategyService($eaTemplateCachingStrategy);\n\n      // register the session plugins\n      $eaSession2.onUpdate(function(session) {\n        // set the airbrake context\n        $airbrake.setCustomContext({userId: session.UserId, contact: session.Contact });\n      });\n\n      $eaSession2.onRegister(function(session) {\n        // set the airbrake context\n        $airbrake.setCustomContext({userId: session.UserId, contact: session.Contact });\n      });\n\n      $eaSession2.onDestroying(function(/* session */) {\n        // reset the airbrake context\n        $airbrake.setCustomContext({});\n      });\n\n      // Load the branding during every page reload\n      $eaBranding.loadBrandingFromHostSegment();\n  });\n","\"use strict\";\n\n angular.module('app.env', [])\n\n.constant('envDeployment', {deploymentUUID:'4996f12a-37b3-4ca7-b919-5d2c0ff628b0',cdnHostDev:'cost-test-cdn.azureedge.net',cdnHostProd:'cdn.azure-costs.com'})\n\n;","'use strict';\n\nangular.module('azureCostsFeApp').directive('popoverHtmlUnsafePopup', function () {\n    return {\n      restrict: 'EA',\n      replace: true,\n      scope: { title: '@', content: '@', placement: '@', animation: '&', isOpen: '&' },\n      templateUrl: 'views/popover/popover-html-unsafe-popup.html'\n    };\n  })\n  .directive('popoverHtmlUnsafe', [ '$tooltip', function ($tooltip) {\n    return $tooltip('popoverHtmlUnsafe', 'popover', 'click');\n  }]);\n","\"function\"!==typeof Object.create&&(Object.create=function(f){function g(){}g.prototype=f;return new g});\n(function(f,g,k){var l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function a(a){var d,e=\"\";if(\"function\"===typeof b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var b=this,e;\"function\"===typeof b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);\"string\"===typeof b.options.jsonPath?\n(e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data(\"owl-originalStyles\",this.$elem.attr(\"style\"));this.$elem.data(\"owl-originalClasses\",this.$elem.attr(\"class\"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length;\nthis.wrapItems();this.$owlItems=this.$elem.find(\".owl-item\");this.$owlWrapper=this.$elem.find(\".owl-wrapper\");this.playDirection=\"next\";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&&\n(this.options.autoPlay=5E3);this.play();this.$elem.find(\".owl-wrapper\").css(\"display\",\"block\");this.$elem.is(\":visible\")?this.$elem.css(\"opacity\",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();\"function\"===typeof this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();\"function\"===typeof this.options.afterAction&&this.options.afterAction.apply(this,\n[this.$elem])},updateVars:function(){\"function\"===typeof this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();\"function\"===typeof this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var a=this;if(!1===a.$elem.is(\":visible\"))a.$elem.css({opacity:0}),\ng.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(\":visible\")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('<div class=\"owl-wrapper\">').wrap('<div class=\"owl-item\"></div>');this.$elem.find(\".owl-wrapper\").wrap('<div class=\"owl-wrapper-outer\">');this.wrapperOuter=this.$elem.find(\".owl-wrapper-outer\");this.$elem.css(\"display\",\"block\")},\nbaseClass:function(){var a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall=\n!1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),b=0;b<this.options.itemsCustom.length;b+=1)this.options.itemsCustom[b][0]<=a&&(this.options.items=this.options.itemsCustom[b][1]);else a<=this.options.itemsDesktop[0]&&!1!==this.options.itemsDesktop&&(this.options.items=this.options.itemsDesktop[1]),\na<=this.options.itemsDesktopSmall[0]&&!1!==this.options.itemsDesktopSmall&&(this.options.items=this.options.itemsDesktopSmall[1]),a<=this.options.itemsTablet[0]&&!1!==this.options.itemsTablet&&(this.options.items=this.options.itemsTablet[1]),a<=this.options.itemsTabletSmall[0]&&!1!==this.options.itemsTabletSmall&&(this.options.items=this.options.itemsTabletSmall[1]),a<=this.options.itemsMobile[0]&&!1!==this.options.itemsMobile&&(this.options.items=this.options.itemsMobile[1]);this.options.items>this.itemsAmount&&\n!0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.autoPlay&&this.checkAp()},appendItemsSizes:function(){var a=\nthis,b=0,e=a.itemsAmount-a.options.items;a.$owlItems.each(function(c){var d=f(this);d.css({width:a.itemWidth}).data(\"owl-item\",Number(c));if(0===c%a.options.items||c===e)c>e||(b+=1);d.data(\"owl-roundPages\",b)})},appendWrapperSizes:function(){this.$owlWrapper.css({width:this.$owlItems.length*this.itemWidth*2,left:0});this.appendItemsSizes()},calculateAll:function(){this.calculateWidth();this.appendWrapperSizes();this.loops();this.max()},calculateWidth:function(){this.itemWidth=Math.round(this.$elem.width()/\nthis.options.items)},max:function(){var a=-1*(this.itemsAmount*this.itemWidth-this.options.items*this.itemWidth);this.options.items>this.itemsAmount?this.maximumPixels=a=this.maximumItem=0:(this.maximumItem=this.itemsAmount-this.options.items,this.maximumPixels=a);return a},min:function(){return 0},loops:function(){var a=0,b=0,e,c;this.positionsInArray=[0];this.pagesInArray=[];for(e=0;e<this.itemsAmount;e+=1)b+=this.itemWidth,this.positionsInArray.push(-b),!0===this.options.scrollPerPage&&(c=f(this.$owlItems[e]),\nc=c.data(\"owl-roundPages\"),c!==a&&(this.pagesInArray[a]=this.positionsInArray[e],a=c))},buildControls:function(){if(!0===this.options.navigation||!0===this.options.pagination)this.owlControls=f('<div class=\"owl-controls\"/>').toggleClass(\"clickable\",!this.browser.isTouch).appendTo(this.$elem);!0===this.options.pagination&&this.buildPagination();!0===this.options.navigation&&this.buildButtons()},buildButtons:function(){var a=this,b=f('<div class=\"owl-buttons\"/>');a.owlControls.append(b);a.buttonPrev=\nf(\"<div/>\",{\"class\":\"owl-prev\",html:a.options.navigationText[0]||\"\"});a.buttonNext=f(\"<div/>\",{\"class\":\"owl-next\",html:a.options.navigationText[1]||\"\"});b.append(a.buttonPrev).append(a.buttonNext);b.on(\"touchstart.owlControls mousedown.owlControls\",'div[class^=\"owl\"]',function(a){a.preventDefault()});b.on(\"touchend.owlControls mouseup.owlControls\",'div[class^=\"owl\"]',function(b){b.preventDefault();f(this).hasClass(\"owl-next\")?a.next():a.prev()})},buildPagination:function(){var a=this;a.paginationWrapper=\nf('<div class=\"owl-pagination\"/>');a.owlControls.append(a.paginationWrapper);a.paginationWrapper.on(\"touchend.owlControls mouseup.owlControls\",\".owl-page\",function(b){b.preventDefault();Number(f(this).data(\"owl-page\"))!==a.currentItem&&a.goTo(Number(f(this).data(\"owl-page\")),!0)})},updatePagination:function(){var a,b,e,c,d,g;if(!1===this.options.pagination)return!1;this.paginationWrapper.html(\"\");a=0;b=this.itemsAmount-this.itemsAmount%this.options.items;for(c=0;c<this.itemsAmount;c+=1)0===c%this.options.items&&\n(a+=1,b===c&&(e=this.itemsAmount-this.options.items),d=f(\"<div/>\",{\"class\":\"owl-page\"}),g=f(\"<span></span>\",{text:!0===this.options.paginationNumbers?a:\"\",\"class\":!0===this.options.paginationNumbers?\"owl-numbers\":\"\"}),d.append(g),d.data(\"owl-page\",b===c?e:c),d.data(\"owl-roundPages\",a),this.paginationWrapper.append(d));this.checkPagination()},checkPagination:function(){var a=this;if(!1===a.options.pagination)return!1;a.paginationWrapper.find(\".owl-page\").each(function(){f(this).data(\"owl-roundPages\")===\nf(a.$owlItems[a.currentItem]).data(\"owl-roundPages\")&&(a.paginationWrapper.find(\".owl-page\").removeClass(\"active\"),f(this).addClass(\"active\"))})},checkNavigation:function(){if(!1===this.options.navigation)return!1;!1===this.options.rewindNav&&(0===this.currentItem&&0===this.maximumItem?(this.buttonPrev.addClass(\"disabled\"),this.buttonNext.addClass(\"disabled\")):0===this.currentItem&&0!==this.maximumItem?(this.buttonPrev.addClass(\"disabled\"),this.buttonNext.removeClass(\"disabled\")):this.currentItem===\nthis.maximumItem?(this.buttonPrev.removeClass(\"disabled\"),this.buttonNext.addClass(\"disabled\")):0!==this.currentItem&&this.currentItem!==this.maximumItem&&(this.buttonPrev.removeClass(\"disabled\"),this.buttonNext.removeClass(\"disabled\")))},updateControls:function(){this.updatePagination();this.checkNavigation();this.owlControls&&(this.options.items>=this.itemsAmount?this.owlControls.hide():this.owlControls.show())},destroyControls:function(){this.owlControls&&this.owlControls.remove()},next:function(a){if(this.isTransition)return!1;\nthis.currentItem+=!0===this.options.scrollPerPage?this.options.items:1;if(this.currentItem>this.maximumItem+(!0===this.options.scrollPerPage?this.options.items-1:0))if(!0===this.options.rewindNav)this.currentItem=0,a=\"rewind\";else return this.currentItem=this.maximumItem,!1;this.goTo(this.currentItem,a)},prev:function(a){if(this.isTransition)return!1;this.currentItem=!0===this.options.scrollPerPage&&0<this.currentItem&&this.currentItem<this.options.items?0:this.currentItem-(!0===this.options.scrollPerPage?\nthis.options.items:1);if(0>this.currentItem)if(!0===this.options.rewindNav)this.currentItem=this.maximumItem,a=\"rewind\";else return this.currentItem=0,!1;this.goTo(this.currentItem,a)},goTo:function(a,b,e){var c=this;if(c.isTransition)return!1;\"function\"===typeof c.options.beforeMove&&c.options.beforeMove.apply(this,[c.$elem]);a>=c.maximumItem?a=c.maximumItem:0>=a&&(a=0);c.currentItem=c.owl.currentItem=a;if(!1!==c.options.transitionStyle&&\"drag\"!==e&&1===c.options.items&&!0===c.browser.support3d)return c.swapSpeed(0),\n!0===c.browser.support3d?c.transition3d(c.positionsInArray[a]):c.css2slide(c.positionsInArray[a],1),c.afterGo(),c.singleItemTransition(),!1;a=c.positionsInArray[a];!0===c.browser.support3d?(c.isCss3Finish=!1,!0===b?(c.swapSpeed(\"paginationSpeed\"),g.setTimeout(function(){c.isCss3Finish=!0},c.options.paginationSpeed)):\"rewind\"===b?(c.swapSpeed(c.options.rewindSpeed),g.setTimeout(function(){c.isCss3Finish=!0},c.options.rewindSpeed)):(c.swapSpeed(\"slideSpeed\"),g.setTimeout(function(){c.isCss3Finish=!0},\nc.options.slideSpeed)),c.transition3d(a)):!0===b?c.css2slide(a,c.options.paginationSpeed):\"rewind\"===b?c.css2slide(a,c.options.rewindSpeed):c.css2slide(a,c.options.slideSpeed);c.afterGo()},jumpTo:function(a){\"function\"===typeof this.options.beforeMove&&this.options.beforeMove.apply(this,[this.$elem]);a>=this.maximumItem||-1===a?a=this.maximumItem:0>=a&&(a=0);this.swapSpeed(0);!0===this.browser.support3d?this.transition3d(this.positionsInArray[a]):this.css2slide(this.positionsInArray[a],1);this.currentItem=\nthis.owl.currentItem=a;this.afterGo()},afterGo:function(){this.prevArr.push(this.currentItem);this.prevItem=this.owl.prevItem=this.prevArr[this.prevArr.length-2];this.prevArr.shift(0);this.prevItem!==this.currentItem&&(this.checkPagination(),this.checkNavigation(),this.eachMoveUpdate(),!1!==this.options.autoPlay&&this.checkAp());\"function\"===typeof this.options.afterMove&&this.prevItem!==this.currentItem&&this.options.afterMove.apply(this,[this.$elem])},stop:function(){this.apStatus=\"stop\";g.clearInterval(this.autoPlayInterval)},\ncheckAp:function(){\"stop\"!==this.apStatus&&this.play()},play:function(){var a=this;a.apStatus=\"play\";if(!1===a.options.autoPlay)return!1;g.clearInterval(a.autoPlayInterval);a.autoPlayInterval=g.setInterval(function(){a.next(!0)},a.options.autoPlay)},swapSpeed:function(a){\"slideSpeed\"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)):\"paginationSpeed\"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)):\"string\"!==typeof a&&this.$owlWrapper.css(this.addCssSpeed(a))},\naddCssSpeed:function(a){return{\"-webkit-transition\":\"all \"+a+\"ms ease\",\"-moz-transition\":\"all \"+a+\"ms ease\",\"-o-transition\":\"all \"+a+\"ms ease\",transition:\"all \"+a+\"ms ease\"}},removeTransition:function(){return{\"-webkit-transition\":\"\",\"-moz-transition\":\"\",\"-o-transition\":\"\",transition:\"\"}},doTranslate:function(a){return{\"-webkit-transform\":\"translate3d(\"+a+\"px, 0px, 0px)\",\"-moz-transform\":\"translate3d(\"+a+\"px, 0px, 0px)\",\"-o-transform\":\"translate3d(\"+a+\"px, 0px, 0px)\",\"-ms-transform\":\"translate3d(\"+\na+\"px, 0px, 0px)\",transform:\"translate3d(\"+a+\"px, 0px,0px)\"}},transition3d:function(a){this.$owlWrapper.css(this.doTranslate(a))},css2move:function(a){this.$owlWrapper.css({left:a})},css2slide:function(a,b){var e=this;e.isCssFinish=!1;e.$owlWrapper.stop(!0,!0).animate({left:a},{duration:b||e.options.slideSpeed,complete:function(){e.isCssFinish=!0}})},checkBrowser:function(){var a=k.createElement(\"div\");a.style.cssText=\"  -moz-transform:translate3d(0px, 0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); -o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 0px, 0px); transform:translate3d(0px, 0px, 0px)\";\na=a.style.cssText.match(/translate3d\\(0px, 0px, 0px\\)/g);this.browser={support3d:null!==a&&1===a.length,isTouch:\"ontouchstart\"in g||g.navigator.msMaxTouchPoints}},moveEvents:function(){if(!1!==this.options.mouseDrag||!1!==this.options.touchDrag)this.gestures(),this.disabledEvents()},eventTypes:function(){var a=[\"s\",\"e\",\"x\"];this.ev_types={};!0===this.options.mouseDrag&&!0===this.options.touchDrag?a=[\"touchstart.owl mousedown.owl\",\"touchmove.owl mousemove.owl\",\"touchend.owl touchcancel.owl mouseup.owl\"]:\n!1===this.options.mouseDrag&&!0===this.options.touchDrag?a=[\"touchstart.owl\",\"touchmove.owl\",\"touchend.owl touchcancel.owl\"]:!0===this.options.mouseDrag&&!1===this.options.touchDrag&&(a=[\"mousedown.owl\",\"mousemove.owl\",\"mouseup.owl\"]);this.ev_types.start=a[0];this.ev_types.move=a[1];this.ev_types.end=a[2]},disabledEvents:function(){this.$elem.on(\"dragstart.owl\",function(a){a.preventDefault()});this.$elem.on(\"mousedown.disableTextSelect\",function(a){return f(a.target).is(\"input, textarea, select, option\")})},\ngestures:function(){function a(a){if(void 0!==a.touches)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(void 0===a.touches){if(void 0!==a.pageX)return{x:a.pageX,y:a.pageY};if(void 0===a.pageX)return{x:a.clientX,y:a.clientY}}}function b(a){\"on\"===a?(f(k).on(d.ev_types.move,e),f(k).on(d.ev_types.end,c)):\"off\"===a&&(f(k).off(d.ev_types.move),f(k).off(d.ev_types.end))}function e(b){b=b.originalEvent||b||g.event;d.newPosX=a(b).x-h.offsetX;d.newPosY=a(b).y-h.offsetY;d.newRelativeX=d.newPosX-h.relativePos;\n\"function\"===typeof d.options.startDragging&&!0!==h.dragging&&0!==d.newRelativeX&&(h.dragging=!0,d.options.startDragging.apply(d,[d.$elem]));(8<d.newRelativeX||-8>d.newRelativeX)&&!0===d.browser.isTouch&&(void 0!==b.preventDefault?b.preventDefault():b.returnValue=!1,h.sliding=!0);(10<d.newPosY||-10>d.newPosY)&&!1===h.sliding&&f(k).off(\"touchmove.owl\");d.newPosX=Math.max(Math.min(d.newPosX,d.newRelativeX/5),d.maximumPixels+d.newRelativeX/5);!0===d.browser.support3d?d.transition3d(d.newPosX):d.css2move(d.newPosX)}\nfunction c(a){a=a.originalEvent||a||g.event;var c;a.target=a.target||a.srcElement;h.dragging=!1;!0!==d.browser.isTouch&&d.$owlWrapper.removeClass(\"grabbing\");d.dragDirection=0>d.newRelativeX?d.owl.dragDirection=\"left\":d.owl.dragDirection=\"right\";0!==d.newRelativeX&&(c=d.getNewPosition(),d.goTo(c,!1,\"drag\"),h.targetElement===a.target&&!0!==d.browser.isTouch&&(f(a.target).on(\"click.disable\",function(a){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();f(a.target).off(\"click.disable\")}),\na=f._data(a.target,\"events\").click,c=a.pop(),a.splice(0,0,c)));b(\"off\")}var d=this,h={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};d.isCssFinish=!0;d.$elem.on(d.ev_types.start,\".owl-wrapper\",function(c){c=c.originalEvent||c||g.event;var e;if(3===c.which)return!1;if(!(d.itemsAmount<=d.options.items)){if(!1===d.isCssFinish&&!d.options.dragBeforeAnimFinish||!1===d.isCss3Finish&&!d.options.dragBeforeAnimFinish)return!1;\n!1!==d.options.autoPlay&&g.clearInterval(d.autoPlayInterval);!0===d.browser.isTouch||d.$owlWrapper.hasClass(\"grabbing\")||d.$owlWrapper.addClass(\"grabbing\");d.newPosX=0;d.newRelativeX=0;f(this).css(d.removeTransition());e=f(this).position();h.relativePos=e.left;h.offsetX=a(c).x-e.left;h.offsetY=a(c).y-e.top;b(\"on\");h.sliding=!1;h.targetElement=c.target||c.srcElement}})},getNewPosition:function(){var a=this.closestItem();a>this.maximumItem?a=this.currentItem=this.maximumItem:0<=this.newPosX&&(this.currentItem=\na=0);return a},closestItem:function(){var a=this,b=!0===a.options.scrollPerPage?a.pagesInArray:a.positionsInArray,e=a.newPosX,c=null;f.each(b,function(d,g){e-a.itemWidth/20>b[d+1]&&e-a.itemWidth/20<g&&\"left\"===a.moveDirection()?(c=g,a.currentItem=!0===a.options.scrollPerPage?f.inArray(c,a.positionsInArray):d):e+a.itemWidth/20<g&&e+a.itemWidth/20>(b[d+1]||b[d]-a.itemWidth)&&\"right\"===a.moveDirection()&&(!0===a.options.scrollPerPage?(c=b[d+1]||b[b.length-1],a.currentItem=f.inArray(c,a.positionsInArray)):\n(c=b[d+1],a.currentItem=d+1))});return a.currentItem},moveDirection:function(){var a;0>this.newRelativeX?(a=\"right\",this.playDirection=\"next\"):(a=\"left\",this.playDirection=\"prev\");return a},customEvents:function(){var a=this;a.$elem.on(\"owl.next\",function(){a.next()});a.$elem.on(\"owl.prev\",function(){a.prev()});a.$elem.on(\"owl.play\",function(b,e){a.options.autoPlay=e;a.play();a.hoverStatus=\"play\"});a.$elem.on(\"owl.stop\",function(){a.stop();a.hoverStatus=\"stop\"});a.$elem.on(\"owl.goTo\",function(b,e){a.goTo(e)});\na.$elem.on(\"owl.jumpTo\",function(b,e){a.jumpTo(e)})},stopOnHover:function(){var a=this;!0===a.options.stopOnHover&&!0!==a.browser.isTouch&&!1!==a.options.autoPlay&&(a.$elem.on(\"mouseover\",function(){a.stop()}),a.$elem.on(\"mouseout\",function(){\"stop\"!==a.hoverStatus&&a.play()}))},lazyLoad:function(){var a,b,e,c,d;if(!1===this.options.lazyLoad)return!1;for(a=0;a<this.itemsAmount;a+=1)b=f(this.$owlItems[a]),\"loaded\"!==b.data(\"owl-loaded\")&&(e=b.data(\"owl-item\"),c=b.find(\".lazyOwl\"),\"string\"!==typeof c.data(\"src\")?\nb.data(\"owl-loaded\",\"loaded\"):(void 0===b.data(\"owl-loaded\")&&(c.hide(),b.addClass(\"loading\").data(\"owl-loaded\",\"checked\")),(d=!0===this.options.lazyFollow?e>=this.currentItem:!0)&&e<this.currentItem+this.options.items&&c.length&&this.lazyPreload(b,c)))},lazyPreload:function(a,b){function e(){a.data(\"owl-loaded\",\"loaded\").removeClass(\"loading\");b.removeAttr(\"data-src\");\"fade\"===d.options.lazyEffect?b.fadeIn(400):b.show();\"function\"===typeof d.options.afterLazyLoad&&d.options.afterLazyLoad.apply(this,\n[d.$elem])}function c(){f+=1;d.completeImg(b.get(0))||!0===k?e():100>=f?g.setTimeout(c,100):e()}var d=this,f=0,k;\"DIV\"===b.prop(\"tagName\")?(b.css(\"background-image\",\"url(\"+b.data(\"src\")+\")\"),k=!0):b[0].src=b.data(\"src\");c()},autoHeight:function(){function a(){var a=f(e.$owlItems[e.currentItem]).height();e.wrapperOuter.css(\"height\",a+\"px\");e.wrapperOuter.hasClass(\"autoHeight\")||g.setTimeout(function(){e.wrapperOuter.addClass(\"autoHeight\")},0)}function b(){d+=1;e.completeImg(c.get(0))?a():100>=d?g.setTimeout(b,\n100):e.wrapperOuter.css(\"height\",\"\")}var e=this,c=f(e.$owlItems[e.currentItem]).find(\"img\"),d;void 0!==c.get(0)?(d=0,b()):a()},completeImg:function(a){return!a.complete||\"undefined\"!==typeof a.naturalWidth&&0===a.naturalWidth?!1:!0},onVisibleItems:function(){var a;!0===this.options.addClassActive&&this.$owlItems.removeClass(\"active\");this.visibleItems=[];for(a=this.currentItem;a<this.currentItem+this.options.items;a+=1)this.visibleItems.push(a),!0===this.options.addClassActive&&f(this.$owlItems[a]).addClass(\"active\");\nthis.owl.visibleItems=this.visibleItems},transitionTypes:function(a){this.outClass=\"owl-\"+a+\"-out\";this.inClass=\"owl-\"+a+\"-in\"},singleItemTransition:function(){var a=this,b=a.outClass,e=a.inClass,c=a.$owlItems.eq(a.currentItem),d=a.$owlItems.eq(a.prevItem),f=Math.abs(a.positionsInArray[a.currentItem])+a.positionsInArray[a.prevItem],g=Math.abs(a.positionsInArray[a.currentItem])+a.itemWidth/2;a.isTransition=!0;a.$owlWrapper.addClass(\"owl-origin\").css({\"-webkit-transform-origin\":g+\"px\",\"-moz-perspective-origin\":g+\n\"px\",\"perspective-origin\":g+\"px\"});d.css({position:\"relative\",left:f+\"px\"}).addClass(b).on(\"webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend\",function(){a.endPrev=!0;d.off(\"webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend\");a.clearTransStyle(d,b)});c.addClass(e).on(\"webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend\",function(){a.endCurrent=!0;c.off(\"webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend\");a.clearTransStyle(c,e)})},clearTransStyle:function(a,\nb){a.css({position:\"\",left:\"\"}).removeClass(b);this.endPrev&&this.endCurrent&&(this.$owlWrapper.removeClass(\"owl-origin\"),this.isTransition=this.endCurrent=this.endPrev=!1)},owlStatus:function(){this.owl={userOptions:this.userOptions,baseElement:this.$elem,userItems:this.$userItems,owlItems:this.$owlItems,currentItem:this.currentItem,prevItem:this.prevItem,visibleItems:this.visibleItems,isTouch:this.browser.isTouch,browser:this.browser,dragDirection:this.dragDirection}},clearEvents:function(){this.$elem.off(\".owl owl mousedown.disableTextSelect\");\nf(k).off(\".owl owl\");f(g).off(\"resize\",this.resizer)},unWrap:function(){0!==this.$elem.children().length&&(this.$owlWrapper.unwrap(),this.$userItems.unwrap().unwrap(),this.owlControls&&this.owlControls.remove());this.clearEvents();this.$elem.attr(\"style\",this.$elem.data(\"owl-originalStyles\")||\"\").attr(\"class\",this.$elem.data(\"owl-originalClasses\"))},destroy:function(){this.stop();g.clearInterval(this.checkVisible);this.unWrap();this.$elem.removeData()},reinit:function(a){a=f.extend({},this.userOptions,\na);this.unWrap();this.init(a,this.$elem)},addItem:function(a,b){var e;if(!a)return!1;if(0===this.$elem.children().length)return this.$elem.append(a),this.setVars(),!1;this.unWrap();e=void 0===b||-1===b?-1:b;e>=this.$userItems.length||-1===e?this.$userItems.eq(-1).after(a):this.$userItems.eq(e).before(a);this.setVars()},removeItem:function(a){if(0===this.$elem.children().length)return!1;a=void 0===a||-1===a?-1:a;this.unWrap();this.$userItems.eq(a).remove();this.setVars()}};f.fn.owlCarousel=function(a){return this.each(function(){if(!0===\nf(this).data(\"owl-init\"))return!1;f(this).data(\"owl-init\",!0);var b=Object.create(l);b.init(a,this);f.data(this,\"owlCarousel\",b)})};f.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1E3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:[\"prev\",\"next\"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1,\nresponsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:g,baseClass:\"owl-carousel\",theme:\"owl-theme\",lazyLoad:!1,lazyFollow:!0,lazyEffect:\"fade\",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}})(jQuery,window,document);","/*\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\n *\n * Uses the built in easing capabilities added In jQuery 1.1\n * to offer multiple easing options\n *\n * TERMS OF USE - EASING EQUATIONS\n * \n * Open source under the BSD License. \n * \n * Copyright © 2001 Robert Penner\n * All rights reserved.\n *\n * TERMS OF USE - jQuery Easing\n * \n * Open source under the BSD License. \n * \n * Copyright © 2008 George McGinley Smith\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, \n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice, this list of \n * conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list \n * of conditions and the following disclaimer in the documentation and/or other materials \n * provided with the distribution.\n * \n * Neither the name of the author nor the names of contributors may be used to endorse \n * or promote products derived from this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n * OF THE POSSIBILITY OF SUCH DAMAGE. \n *\n*/\njQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:\"easeOutQuad\",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});\n","// SmoothScroll v0.9.9\n// Licensed under the terms of the MIT license.\n\n// People involved\n// - Balazs Galambosi: maintainer (CHANGELOG.txt)\n// - Patrick Brunner (patrickb1991@gmail.com)\n// - Michael Herf: ssc_pulse Algorithm\n\nfunction ssc_init() {\n    if (!document.body) return;\n    var e = document.body;\n    var t = document.documentElement;\n    var n = window.innerHeight;\n    var r = e.scrollHeight;\n    ssc_root = document.compatMode.indexOf(\"CSS\") >= 0 ? t : e;\n    ssc_activeElement = e;\n    ssc_initdone = true;\n    if (top != self) {\n        ssc_frame = true\n    } else if (r > n && (e.offsetHeight <= n || t.offsetHeight <= n)) {\n        ssc_root.style.height = \"auto\";\n        if (ssc_root.offsetHeight <= n) {\n            var i = document.createElement(\"div\");\n            i.style.clear = \"both\";\n            e.appendChild(i)\n        }\n    }\n    if (!ssc_fixedback) {\n        e.style.backgroundAttachment = \"scroll\";\n        t.style.backgroundAttachment = \"scroll\"\n    }\n    if (ssc_keyboardsupport) {\n        ssc_addEvent(\"keydown\", ssc_keydown)\n    }\n}\n\nfunction ssc_scrollArray(e, t, n, r) {\n    r || (r = 1e3);\n    ssc_directionCheck(t, n);\n    ssc_que.push({\n        x: t,\n        y: n,\n        lastX: t < 0 ? .99 : -.99,\n        lastY: n < 0 ? .99 : -.99,\n        start: +(new Date)\n    });\n    if (ssc_pending) {\n        return\n    }\n    var i = function () {\n        var s = +(new Date);\n        var o = 0;\n        var u = 0;\n        for (var a = 0; a < ssc_que.length; a++) {\n            var f = ssc_que[a];\n            var l = s - f.start;\n            var c = l >= ssc_animtime;\n            var h = c ? 1 : l / ssc_animtime;\n            if (ssc_pulseAlgorithm) {\n                h = ssc_pulse(h)\n            }\n            var p = f.x * h - f.lastX >> 0;\n            var d = f.y * h - f.lastY >> 0;\n            o += p;\n            u += d;\n            f.lastX += p;\n            f.lastY += d;\n            if (c) {\n                ssc_que.splice(a, 1);\n                a--\n            }\n        }\n        if (t) {\n            var v = e.scrollLeft;\n            e.scrollLeft += o;\n            if (o && e.scrollLeft === v) {\n                t = 0\n            }\n        }\n        if (n) {\n            var m = e.scrollTop;\n            e.scrollTop += u;\n            if (u && e.scrollTop === m) {\n                n = 0\n            }\n        }\n        if (!t && !n) {\n            ssc_que = []\n        }\n        if (ssc_que.length) {\n            setTimeout(i, r / ssc_framerate + 1)\n        } else {\n            ssc_pending = false\n        }\n    };\n    setTimeout(i, 0);\n    ssc_pending = true\n}\n\nfunction ssc_wheel(e) {\n    if (!ssc_initdone) {\n        ssc_init()\n    }\n    var t = e.target;\n    var n = ssc_overflowingAncestor(t);\n    if (!n || e.defaultPrevented || ssc_isNodeName(ssc_activeElement, \"embed\") || ssc_isNodeName(t, \"embed\") && /\\.pdf/i.test(t.src)) {\n        return true\n    }\n    var r = e.wheelDeltaX || 0;\n    var i = e.wheelDeltaY || 0;\n    if (!r && !i) {\n        i = e.wheelDelta || 0\n    }\n    if (Math.abs(r) > 1.2) {\n        r *= ssc_stepsize / 120\n    }\n    if (Math.abs(i) > 1.2) {\n        i *= ssc_stepsize / 120\n    }\n    ssc_scrollArray(n, -r, -i);\n    e.preventDefault()\n}\n\nfunction ssc_keydown(e) {\n    var t = e.target;\n    var n = e.ctrlKey || e.altKey || e.metaKey;\n    if (/input|textarea|embed/i.test(t.nodeName) || t.isContentEditable || e.defaultPrevented || n) {\n        return true\n    }\n    if (ssc_isNodeName(t, \"button\") && e.keyCode === ssc_key.spacebar) {\n        return true\n    }\n    var r, i = 0,\n        s = 0;\n    var o = ssc_overflowingAncestor(ssc_activeElement);\n    var u = o.clientHeight;\n    if (o == document.body) {\n        u = window.innerHeight\n    }\n    switch (e.keyCode) {\n    case ssc_key.up:\n        s = -ssc_arrowscroll;\n        break;\n    case ssc_key.down:\n        s = ssc_arrowscroll;\n        break;\n    case ssc_key.spacebar:\n        r = e.shiftKey ? 1 : -1;\n        s = -r * u * .9;\n        break;\n    case ssc_key.pageup:\n        s = -u * .9;\n        break;\n    case ssc_key.pagedown:\n        s = u * .9;\n        break;\n    case ssc_key.home:\n        s = -o.scrollTop;\n        break;\n    case ssc_key.end:\n        var a = o.scrollHeight - o.scrollTop - u;\n        s = a > 0 ? a + 10 : 0;\n        break;\n    case ssc_key.left:\n        i = -ssc_arrowscroll;\n        break;\n    case ssc_key.right:\n        i = ssc_arrowscroll;\n        break;\n    default:\n        return true\n    }\n    ssc_scrollArray(o, i, s);\n    e.preventDefault()\n}\n\nfunction ssc_mousedown(e) {\n    ssc_activeElement = e.target\n}\n\nfunction ssc_setCache(e, t) {\n    for (var n = e.length; n--;) ssc_cache[ssc_uniqueID(e[n])] = t;\n    return t\n}\n\nfunction ssc_overflowingAncestor(e) {\n    var t = [];\n    var n = ssc_root.scrollHeight;\n    do {\n        var r = ssc_cache[ssc_uniqueID(e)];\n        if (r) {\n            return ssc_setCache(t, r)\n        }\n        t.push(e);\n        if (n === e.scrollHeight) {\n            if (!ssc_frame || ssc_root.clientHeight + 10 < n) {\n                return ssc_setCache(t, document.body)\n            }\n        } else if (e.clientHeight + 10 < e.scrollHeight) {\n            var overflow = getComputedStyle(e, \"\").getPropertyValue(\"overflow\");\n            if (overflow === \"scroll\" || overflow === \"auto\") {\n                return ssc_setCache(t, e)\n            }\n        }\n    } while (e = e.parentNode)\n}\n\nfunction ssc_addEvent(e, t, n) {\n    window.addEventListener(e, t, n || false)\n}\n\nfunction ssc_removeEvent(e, t, n) {\n    window.removeEventListener(e, t, n || false)\n}\n\nfunction ssc_isNodeName(e, t) {\n    return e.nodeName.toLowerCase() === t.toLowerCase()\n}\n\nfunction ssc_directionCheck(e, t) {\n    e = e > 0 ? 1 : -1;\n    t = t > 0 ? 1 : -1;\n    if (ssc_direction.x !== e || ssc_direction.y !== t) {\n        ssc_direction.x = e;\n        ssc_direction.y = t;\n        ssc_que = []\n    }\n}\n\nfunction ssc_pulse_(e) {\n    var t, n, r;\n    e = e * ssc_pulseScale;\n    if (e < 1) {\n        t = e - (1 - Math.exp(-e))\n    } else {\n        n = Math.exp(-1);\n        e -= 1;\n        r = 1 - Math.exp(-e);\n        t = n + r * (1 - n)\n    }\n    return t * ssc_pulseNormalize\n}\n\nfunction ssc_pulse(e) {\n    if (e >= 1) return 1;\n    if (e <= 0) return 0;\n    if (ssc_pulseNormalize == 1) {\n        ssc_pulseNormalize /= ssc_pulse_(1)\n    }\n    return ssc_pulse_(e)\n}\n\nvar ssc_framerate = 150;\nvar ssc_animtime = 500;\nvar ssc_stepsize = 150;\nvar ssc_pulseAlgorithm = true;\nvar ssc_pulseScale = 6;\nvar ssc_pulseNormalize = 1;\nvar ssc_keyboardsupport = true;\nvar ssc_arrowscroll = 50;\nvar ssc_frame = false;\nvar ssc_direction = {\n    x: 0,\n    y: 0\n};\n\nvar ssc_initdone = false;\nvar ssc_fixedback = true;\nvar ssc_root = document.documentElement;\nvar ssc_activeElement;\nvar ssc_key = {\n    left: 37,\n    up: 38,\n    right: 39,\n    down: 40,\n    spacebar: 32,\n    pageup: 33,\n    pagedown: 34,\n    end: 35,\n    home: 36\n};\n\nvar ssc_que = [];\nvar ssc_pending = false;\nvar ssc_cache = {};\n\nsetInterval(function () {\n    ssc_cache = {}\n}, 10 * 1e3);\n\nvar ssc_uniqueID = function () {\n    var e = 0;\n    return function (t) {\n        return t.ssc_uniqueID || (t.ssc_uniqueID = e++)\n    }\n}();\n\nvar ischrome = /chrome/.test(navigator.userAgent.toLowerCase());\n\nif (ischrome) {\n    ssc_addEvent(\"mousedown\", ssc_mousedown);\n    ssc_addEvent(\"mousewheel\", ssc_wheel);\n    ssc_addEvent(\"load\", ssc_init)\n}\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaPublicAreaCtrl', function () {});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaSecuredAreaCtrl', [ '$scope', '$eaCurrentSession', function ($scope, $eaCurrentSession) {\n\n  // defined some view related information\n  $scope.authorized = ($eaCurrentSession !== null && $eaCurrentSession  !== undefined);\n  $scope.currentSession = $eaCurrentSession;\n\n}]);\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:EasplashCtrl\n * @description\n * # EasplashCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaSplashCtrl', function ($scope, $state, $stateParams, $eaBackendDataModeSelector, $location, $eaConfig) {\n\n  // resolve the csp entry point\n  if (($location.host().indexOf($eaConfig.feHost) > 0 && $location.host().split('.')[0] === 'csp')) {\n    $state.go('authorized.cspinit');\n  } else {\n    // go directly to the signin state\n    $state.go('public.signin');\n  }\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaSignInCtrl', function ($q, $scope, $controller, $state, $location, $eaSession2, $eaUserProfile, $eaLocalSettings, $eaBackendDataModeSelector, $eaCspService, $ccDemoModeService) {\n    var self = this;\n\n    // inject mixins\n    $.extend(self, $controller('SessionHelperCtrlMixin', {$scope: $scope, $eaBackendDataModeSelector: $eaBackendDataModeSelector, $eaSession2: $eaSession2, $state: $state }));\n\n    // set the standard message\n    $scope.action = 'Logging in...';\n    $scope.showRefreshSessionButton = false;\n\n\n    // start the magin signin process\n    $eaSession2.lazy().then(function (session) {\n\n      return $eaCspService.loadProfiles(session).then(function(cspProfiles) {\n\n        // check if we prevent this\n        if (!cspProfiles || cspProfiles.length == 0 || $state.params.csp === \"false\" || $state.params.team || $state.params.enrollment || $state.params.initial || $state.params.demo) {\n\n          // at this point we have a valid session and should load the availabe contracts\n          $eaUserProfile.load(session.DataToken).then(function (profile) {\n\n            // get the contracts\n            var contracts = $eaUserProfile.getContracts(profile);\n\n            // check if we have contracts or not\n            if (contracts.length === 0 && $state.params.demo === \"1\") {\n\n              // enable the demo mode in the data selector\n              $ccDemoModeService.enableDemoMode(session, {csp: false});\n\n            }\n            if (contracts.length === 0) {\n              var nonPersonalTeams = profile.Teams.filter(function (t) {\n                return t.Role === 'admin' && t.Id !== 'personal'\n              }).map(function (t) {\n                return t.Id\n              });\n              $state.go('authorized.teams.contracts.add', {teamid: nonPersonalTeams.length === 0 ? 'personal' : nonPersonalTeams[0]});\n            } else {\n\n              // build parameters\n              var stateParams = {\n                teamid: $state.params.team,\n                eanumber: $state.params.enrollment\n              };\n\n              if (!stateParams.teamid) {\n                stateParams.teamid = contracts.getAt(0).Team;\n              }\n\n              if ($state.params.initial) {\n                stateParams.initial = $state.params.initial;\n              }\n\n              $state.go('authorized.teams.dashboards', stateParams);\n            }\n\n          }).catch(function (error) {\n            $scope.action = 'Something went wrong: ' + error;\n            $scope.showRefreshSessionButton = true;\n          });\n        } else {\n          // open the csp portal\n          $state.go('authorized.cspinit');\n        }\n      });\n    });\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaDebuggerCspCtrl', function ($scope, $state, $eaBackendAzure) {\n\n  $scope.PartnerSdkConnection = {\n    ClientId: \"\",\n    ClientSecret: \"\",\n    Domain: \"\",\n    Username: \"\",\n    Password: \"\"\n  };\n\n  $scope.PartnerSdkOperations = [];\n  $scope.date = new Date();\n\n  $scope.HideForm = false;\n\n  $scope.performConnectionTest = function() {\n    $scope.HideForm = true;\n    $scope.date = new Date();\n\n    var optionalUserCredentials = undefined;\n\n    if ($scope.PartnerSdkConnection.Username && $scope.PartnerSdkConnection.Username.length > 0) {\n      optionalUserCredentials = {\n        Username: $scope.PartnerSdkConnection.Username,\n        Password: $scope.PartnerSdkConnection.Password\n      }\n    }\n\n    $eaBackendAzure.dataMonDebugCsp($scope.PartnerSdkConnection.ClientId, $scope.PartnerSdkConnection.ClientSecret, $scope.PartnerSdkConnection.Domain, optionalUserCredentials).then(function(result) {\n      result.forEach(function(r) {\n        $scope.PartnerSdkOperations.push(r);\n      });\n    })\n  }\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('SessionHelperCtrlMixin', function($scope, $eaBackendDataModeSelector, $eaSession2, $state, $window) {\n\n  function destroySession() {\n\n    try {\n      // cache idp type\n      var idp = $eaSession2.getSession().IdentityProvider;\n\n      // kill the session\n      $eaSession2.destroySession();\n\n      return idp;\n    } catch(e) {\n      return null;\n    }\n  }\n\n  // Signout\n  $scope.signOut = function() {\n\n    // destroy the session\n    destroySession();\n\n    // call the session signout\n    $eaSession2.signOut();\n  };\n\n  $scope.refreshSession = function() {\n\n    // destroy the session\n    var idp = destroySession();\n\n    // redirect to signin\n    if (idp) {\n      $state.go('public.signin', {idp: idp});\n    } else {\n      $state.go('public.signin');\n    }\n  };\n\n  $scope.leaveActAs = function() {\n    // leave the act-AsMode\n    $eaSession2.leaveActAs();\n  };\n\n  $scope.visitProfile = function() {\n    $eaSession2.visitProfileInSTS(true);\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('JwtTokenHelperCtrlMixin', [ '$scope', 'jwtHelper', function($scope, jwtHelper) {\n\n  $scope.verifyJwtToken = function(tokenValue) {\n\n    try {\n      // read the token from the input field\n      var decodedToken = jwtHelper.decodeToken(tokenValue);\n\n      // check if we have an enrollment number, if so add\n      if (decodedToken.EnrollmentNumber !== undefined) {\n        return decodedToken.EnrollmentNumber;\n      } else {\n        return null;\n      }\n\n    } catch(e) {\n        return null;\n    }\n  }\n}]);\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaAddCtrl', function ($scope, $state, $rootScope, $acWizardHelpers) {\n\n  // define the current state\n  $scope.currentStep = $acWizardHelpers.getCurrentStep($state.current);\n  $scope.step01Title = 'Select your contract type';\n\n  // the error container\n  $scope.registerError = null;\n\n  // handle state changes to adapt the control\n  $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){\n    $scope.currentStep = $acWizardHelpers.getCurrentStep(toState);\n  });\n\n  // just redirect to the step01 as default\n  if ($state.current.name === 'authorized.reportAdd') { return $state.go('authorized.reportAdd.step01'); }\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaAddStep01Ctrl', function ($scope, $eaBackend, $busy, $eaBackendDataModeSelector, $eaSession2 , $eaTeamManagement, $eaUserProfile, $state, $eaCurrentSession, $toolbar, $eaBilling, $ccDemoModeService) {\n\n  // contains the form content\n  $scope.formStep01 = {\n    team: 'personal',\n    contractType: 'ea'\n  };\n\n  // possible target teams\n  $scope.targetTeams = [ { Id: 'personal', Name: 'Personal'} ];\n  $scope.activatedPlanEA    = false;\n  $scope.activatedPlanPayGo = false;\n  $scope.activatedCostMgnt = false;\n\n  $busy.during($eaUserProfile.load($eaCurrentSession.DataToken).then(function(profile) {\n\n    // pre-select the right tema\n    if ($state.params.teamid && $eaTeamManagement.isAdminInOfTeam(profile, $state.params.teamid)) {\n      $scope.formStep01.team = $state.params.teamid;\n    }\n\n    $scope.teamChanged = function() {\n\n      // check the team details\n      profile.Teams.forEach(function(team) {\n\n        if (team.Id === $scope.formStep01.team) {\n\n          if ($eaBilling.hasRequiredPlan(team.AccountPlan, 'professional')) {\n            $scope.activatedPlanEA    = true;\n            $scope.activatedPlanPayGo = true;\n            $scope.activatedCostMgnt = true;\n            $scope.formStep01.contractType = 'ea';\n          } else if ($eaBilling.hasRequiredPlan(team.AccountPlan, 'startup')) {\n            $scope.activatedPlanEA    = false;\n            $scope.activatedPlanPayGo = true;\n            $scope.activatedCostMgnt = false;\n            $scope.formStep01.contractType = 'paygo';\n          } else if ($eaBilling.hasRequiredPlan(team.AccountPlan, 'basic')) {\n            $scope.activatedPlanEA    = true;\n            $scope.activatedPlanPayGo = true;\n            $scope.activatedCostMgnt  = true;\n            $scope.formStep01.contractType = 'ea';\n          }\n        }\n      });\n\n    };\n\n\n    $scope.next = function() {\n\n      if ($scope.formStep01.contractType === 'ea') {\n        return $state.go('authorized.reportAdd.step02-ea', {team: $scope.formStep01.team});\n      } else if ($scope.formStep01.contractType === 'costmgnt') {\n          return $state.go('authorized.reportAdd.step02-costmgnt', {team: $scope.formStep01.team});\n      } else if ($scope.formStep01.contractType === 'demo') {\n        return $ccDemoModeService.enableDemoMode($eaCurrentSession);\n      } else {\n        return $state.go('authorized.reportAdd.step02-rate', {team: $scope.formStep01.team});\n      }\n    };\n\n    // Check the license topics\n    // $scope.activeTeam && $eaBilling.hasRequiredPlan($scope.activeTeam.AccountPlan, 'enterprise'))\n\n\n    // Add Back Entry if we have contracts\n    var contracts = $eaUserProfile.getContracts(profile);\n    if (contracts && contracts.length > 0) {\n      $toolbar.addItem('addEA.Back', 'Back to Reports', 'fa-chevron-left', null, true, '/signin');\n    }\n\n    // define the available options\n    $scope.teamChanged();\n\n    // load the team profiles if needed\n    if ($eaTeamManagement.isAdminInAtLeastOneTime(profile)) {\n\n      return $eaTeamManagement.getTeamProfilesByRole(profile, 'admin', false, $eaCurrentSession.DataToken).then(function(teamProfiles) {\n        // add the profiles\n        $scope.targetTeams = $scope.targetTeams.concat(teamProfiles);\n\n      });\n    }\n  }));\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaAddStep02EaCtrl', function ($scope, $eaBackend, $busy, jwtHelper, $state, $eaCurrentSession) {\n\n  $scope.formAddToken = {\n    team: $state.params.team ? $state.params.team : 'personal',\n    ea: null,\n    eaType: null,\n    token: null\n  };\n\n  $scope.next = function() {\n    $busy.during($eaBackend.dataEARegisterContract($scope.formAddToken.team, $scope.formAddToken.ea,  $scope.formAddToken.token, $eaCurrentSession.DataToken).then(function () {\n      return $state.go('authorized.reportAdd.step03', { team: $scope.formAddToken.team, enrollment: $scope.formAddToken.ea});\n    }).catch(function (error) {\n\n      if (error.status === 409 && error.data && error.data.Message) {\n        $scope.registerError = error.data.Message;\n      } else {\n        $scope.registerError = error.data + ' (' + error.statusText + ')';\n      }\n    }));\n  };\n\n\n  $scope.tokenFieldChanged = function() {\n\n    try {\n      // read the token from the input field\n      var decodedToken = jwtHelper.decodeToken($scope.formAddToken.token);\n\n      // check if we have an enrollment number, if so add\n      if (decodedToken.EnrollmentNumber !== undefined) {\n        $scope.formAddToken.ea = decodedToken.EnrollmentNumber;\n      } else {\n        $scope.formAddToken.ea = null;\n      }\n\n      // check what type the contract is\n      if (decodedToken.ReportView !== undefined) {\n        $scope.formAddToken.eaType = decodedToken.ReportView;\n      } else {\n        $scope.formAddToken.eaType = null;\n      }\n    } catch(e) {\n      $scope.formAddToken.ea = null;\n      $scope.formAddToken.eaType = null;\n    }\n  };\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaAddStep02CostMgntCtrl', function ($scope, $eaBackend, $busy, jwtHelper, $state, $eaCurrentSession) {\n\n  $scope.formAddReport = {\n    team: $state.params.team ? $state.params.team : 'personal',\n    storageAccount: null,\n    storageKey: null,\n    reportContainer: null,\n    reportFolder: null\n  };\n\n  $scope.next = function() {    \n    $busy.during($eaBackend.dataCostMgntRegisterContract($scope.formAddReport.team, $eaCurrentSession.DataToken).then(function(contractId) {      \n      return $busy.during($eaBackend.dataCostMgntAddContainerToContract($scope.formAddReport.team, contractId, $scope.formAddReport.storageAccount,  $scope.formAddReport.storageKey, $scope.formAddReport.reportContainer, $scope.formAddReport.reportFolder, $eaCurrentSession.DataToken).then(function() {\n        return $busy.during($eaBackend.dataAllSyncReports($scope.formAddReport.team, contractId, $eaCurrentSession.DataToken).then(function() {\n          return $state.go('authorized.reportAdd.step03', { team: $scope.formAddReport.team, enrollment: contractId});\n        }))\n      }))\n    }).catch(function (error) {\n\n      if (error.status === 409 && error.data && error.data.Message) {\n        $scope.registerError = error.data.Message;\n      } else {\n        $scope.registerError = error.data + ' (' + error.statusText + ')';\n      }\n    }));\n  };\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaAddStep02RateCtrl', function ($scope, $state, $stateParams, $window, $location, $eaBackend, $eaCurrentSession, $eaConfig, $busy) {\n\n  if ($state.params.enrollment) {\n    return $state.go('authorized.reportAdd.step02-rate-connect', $state.params);\n  } else {\n\n    // load the needed metadat before we can start\n    $busy.setMessage('Loading details');\n    $busy.during($eaBackend.dataGetMetadata('currencies', $eaCurrentSession.DataToken).then(function(currencies) {\n      $scope.availableCurrencies = currencies;\n      $scope.availableCloudinstances = [\n        { Id: 'rates', Display: 'Azure Cloud World Wide (Default)'},\n        { Id: 'ratesger', Display: 'Azure German Cloud' }\n      ];\n\n      $scope.formAddContract = {\n        team: $state.params.team ? $state.params.team : 'personal',\n        tenantId: null,\n        defaultCurrency: $state.params.currency ? $state.params.currency : null,\n        cloudInstance: 'rates'\n      };\n\n      $scope.disableCurrency = ($state.params.currency !== null && $state.params.currency !== undefined);\n\n      $scope.next = function () {\n\n\n        // ask the api for a creation token\n        $eaBackend.dataPostRatePlanRegistrationId($scope.formAddContract.team, $location.absUrl(), $scope.formAddContract.tenantId, $scope.formAddContract.defaultCurrency, $eaCurrentSession.DataToken).then(function (result) {\n\n          // redirect to authorisation endpoint, state should become the creation token\n          $window.location = ($eaConfig.aadProtocol ? $eaConfig.aadProtocol: 'https') + '://' + $eaConfig.aadHost + '/aad/link/' + $scope.formAddContract.cloudInstance + '?tenant=' + $scope.formAddContract.tenantId + '&state=' + result.RegistrationId;\n        });\n      }\n\n    }));\n  }\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaAddStep02RateConnectCtrl', function ($scope, $state, $window, $location, $eaBackend, $eaCurrentSession, $eaConfig, $busy, $q) {\n\n  // define the alert message\n  $scope.alertMessages = [];\n  $scope.contractModel = null;\n\n  $scope.subscriptionPermissionLink = \"https://portal.azure.com/#blade/Microsoft_Azure_AD/UserAssignmentsBlade/scope/%2Fsubscriptions%2F\";\n  $scope.hideSubscriptionsDetailsLink = false;\n\n  // query the enrollment\n  $busy.during($eaBackend.dataGetContract($state.params.team, $state.params.enrollment, $eaCurrentSession.DataToken).then(function(contract) {\n\n    // set the contract\n    $scope.contractModel = contract;\n\n    // build the offerinfs string\n    var offerings = 'offerings';\n    if (contract.CloudInstance && contract.CloudInstance === 'analyticsger') {\n      offerings = 'offeringsde';\n      $scope.subscriptionPermissionLink = \"https://portal.microsoftazure.de/#blade/Microsoft_Azure_AD/UserAssignmentsBlade/scope/%2Fsubscriptions%2F\";\n      $scope.hideSubscriptionsDetailsLink = true;\n    }\n\n    // query all offerings\n    return $eaBackend.dataGetMetadata(offerings, $eaCurrentSession.DataToken).then(function (offerings) {\n      $scope.availableOfferings = offerings;\n\n      return $eaBackend.dataGetMetadata('countries', $eaCurrentSession.DataToken).then(function (countries) {\n        $scope.availableCountries = countries;\n\n        // query the subscription\n        return $eaBackend.dataGetContractSubscriptions($state.params.team, $state.params.enrollment, $eaCurrentSession.DataToken, {verify: true}).then(function (subscriptions) {\n          $scope.subscriptions = subscriptions;\n        });\n\n      });\n    });\n  }));\n\n  function verifySubscritpionSettingsAndGenerateErrorMessage() {\n    var errors = [];\n    var foundError = false;\n\n    $scope.subscriptions.forEach(function(s) {\n\n      // ignore disabled subscriptions\n      if (s.Ignore !== undefined && s.Ignore === true) { return; }\n\n      // verify\n      var subscriptionErrorField = { Id: s.Id, Name: s.Name, Errors: []};\n\n      if (s.ArmState !== 'connected') { foundError = true; subscriptionErrorField.Errors.push('Missing Reader-Permissions in Azure (check <a target=\"_new\" href=\"https://azurecostmonitor.uservoice.com/knowledgebase/articles/805902\">KB article</a>)'); }\n      if (s.Offering === null || s.Offering === undefined) { foundError = true; subscriptionErrorField.Errors.push('No OfferingId selected!'); }\n      if (s.Country === null || s.Country === undefined) { foundError = true; subscriptionErrorField.Errors.push('No Country selected'); }\n\n      if (subscriptionErrorField.Errors.length > 0 ) { errors.push(subscriptionErrorField); }\n    });\n\n    return foundError ? errors : null;\n  }\n\n  $scope.verifyPermissions = function() {\n    $busy.setMessage(\"Verify permissions\");\n    return $busy.during($eaBackend.dataGetContractSubscriptions($state.params.team, $state.params.enrollment, $eaCurrentSession.DataToken, {verify: true}).then(function(subscriptions) {\n      var subscriptionIndex = subscriptions.buildIndex('Id');\n      $scope.subscriptions.forEach(function(s) {\n        s.ArmState = subscriptionIndex[s.Id].ArmState;\n      });\n    }));\n  };\n\n  function verifyConnection(subscriptions) {\n    var errors = [];\n\n    $busy.setMessage(\"Checking Rate Card access...\");\n    return $busy.during($q.all(subscriptions.map(function(s) {\n\n      // ignore if required\n      if (s.Ignore !== undefined && s.Ignore) {\n        return $q.when();\n      } else {\n        return $eaBackend.dataGetContractSubscriptionsVerifyConnection($state.params.team, $state.params.enrollment, s.Id, s.Offering, s.Country, $scope.contractModel.Currency, $eaCurrentSession.DataToken).catch(function (result) {\n          var subscriptionErrorField = {Id: s.Id, Name: s.Name, Errors: []};\n\n          if (result && result.data.message) {\n            subscriptionErrorField.Errors.push(result.data.message);\n          } else {\n            subscriptionErrorField.Errors.push(\"Can't download the rate card, verify settings\");\n          }\n\n          errors.push(subscriptionErrorField);\n\n          return $q.reject();\n        });\n      }\n    })).then(function() {\n      return $q.when([]);\n    }).catch(function() {\n      return $q.when(errors);\n    }));\n  }\n\n  $scope.toggleIgnoreSubscriptionState = function(subscription) {\n    if (subscription.Ignore === undefined) { subscription.Ignore = false; }\n    subscription.Ignore = !subscription.Ignore\n  };\n\n  $scope.next = function() {\n\n    // verify the permissions\n    $scope.verifyPermissions().then(function() {\n\n      var error = verifySubscritpionSettingsAndGenerateErrorMessage();\n\n      if (error) {\n        // set the errors\n        $scope.alertMessages = error;\n      } else {\n\n        // try to download the rate cards\n        return verifyConnection($scope.subscriptions).then(function(verifyConnectionErrors) {\n\n          if (verifyConnectionErrors && verifyConnectionErrors.length > 0) {\n            $scope.alertMessages = verifyConnectionErrors;\n          } else {\n\n            // reset all previous errors\n            $scope.alertMessages = null;\n\n            // update every subscription\n            var updatePromise = [];\n            $scope.subscriptions.forEach(function (s) {\n\n              if (s.ArmState === 'connected' && (s.Ignore === undefined || s.Ignore == false)) {\n                updatePromise.push($eaBackend.dataPutContractSubscription($state.params.team, $state.params.enrollment, s.Id, {\n                  Offering: s.Offering,\n                  Country: s.Country,\n                  State: 'valid'\n                }, $eaCurrentSession.DataToken));\n              }\n            });\n\n            // wait\n            $busy.during($q.all(updatePromise).then(function () {\n\n              // trigger sync job\n              return $eaBackend.dataAllSyncReports($state.params.team, $state.params.enrollment, $eaCurrentSession.DataToken).then(function () {\n\n                // got to the next state\n                $state.go('authorized.reportAdd.step03', $state.params);\n\n              });\n            }));\n          }\n        });\n      };\n    });\n  }\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('EaAddStep03Ctrl', function ($scope, $state) {\n  $scope.team = $state.params.team;\n  $scope.enrollment = $state.params.enrollment;\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaTeamMigrateCtrl', function ($scope, $eaSession2, $eaBackend, $busy, $controller, $eaBackendDataModeSelector, $state, $toolbar, $eaUserProfile, $eaCurrentSession, $location) {\n\n  // inject mixins\n  $.extend(self, $controller('SessionHelperCtrlMixin', {$scope: $scope, $eaBackendDataModeSelector: $eaBackendDataModeSelector, $eaSession2: $eaSession2, $state: $state }));\n\n  // define the form structure\n  $scope.formMigrateTeam = {\n    Name: undefined\n  };\n\n  return $busy.during($eaUserProfile.load($eaCurrentSession.DataToken).then(function(profile) {\n\n    // define the active team\n    $scope.team = $eaUserProfile.getTeam(profile, 'personal');\n\n    // migrates a specific user to a team account\n    $scope.migrateCurrentUser = function () {\n\n      $busy.during($eaBackend.dataMigrateToTeamAccount($scope.formMigrateTeam.Name, $eaCurrentSession.DataToken)).then(function () {\n\n        // sign out\n        $eaSession2.destroySession();\n\n        // sign in and comeback\n        var path = '/sso?idp=' + $eaCurrentSession.IdentityProvider + '&redirect=' + encodeURIComponent('/app/teams');\n        $location.url(path);\n\n      }).catch(function (error) {\n        alert(error);\n      })\n    };\n\n    // Add Back Entry\n    $toolbar.addItem('migrateTeam.Back', 'Back to Reports', 'fa-chevron-left', null, true, '/signin');\n  }));\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('TeamsChooseContractMixinCtrl', function($scope, $modal, $controller, $eaUserProfile) {\n\n  // Re-Using the object picker\n  $.extend(self, $controller('ModalObjectPickerCtrlMixin', {$scope: $scope, $modal: $modal}));\n\n  $scope.openContractChooser = function(profile, options) {\n    options = options || {};\n\n    var availableContracts = $eaUserProfile.getContracts(profile, options.team).toArray();\n\n\n    // prepare the callbacks\n    var getImageUrl = function(model) {\n        return 'fa-user';\n    };\n\n    var getDisplayName = function(model) {\n      if (model.Definition === 'EA') {\n        return 'EA-' + model.Enrollment;\n      } else {\n        return model.Name;\n      }\n    };\n\n    var getDetailsString = function(model) {\n      if (model.Definition === 'EA') {\n        return 'Microsoft Enterprise Agreement';\n      } else {\n        return 'Microsoft Rate Plan or Pay-as-You-Go Plan';\n      }\n    };\n\n    var description = 'Please select the contract you want to define notifications for this user:';\n\n    return $scope.openObjectPickerDialog('Choose a contract', description, getImageUrl, getDisplayName, getDetailsString, availableContracts, [availableContracts[0]], true);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaTeamInviteAcceptCtrl', function ($state) {\n  $state.go('public.signin');\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('TeamsChooseTeamMixinCtrl', function($scope, $modal, $controller, $q, $eaTeamManagement) {\n\n  // Re-Using the object picker\n  $.extend(self, $controller('ModalObjectPickerCtrlMixin', {$scope: $scope, $modal: $modal}));\n\n  /*\n   * Opens a team chooser and allows to select a specific team. Only teams where the user has the defined minimum\n   * role will be shown. If only one team is choosable the function does not open a chooser it returns this team.\n   * Should no team match the criteria it ends up with an error.\n   */\n  $scope.openTeamChooser = function(profile, activeTeamId, minimumRoleInTeam, $eaCurrentSession, options) {\n    options = options || {};\n\n    // load all the teams\n    return $eaTeamManagement.getTeamProfilesByRole(profile, minimumRoleInTeam, false, $eaCurrentSession.DataToken).then(function(teamProfiles) {\n\n      // check if we have no team\n      if (!teamProfiles || teamProfiles.length === 0) { return $q.reject(); }\n\n      // check if we have just one team\n      if (teamProfiles.length === 1 && !options.allowPersonal) { return $q.when(teamProfiles[0].Id); }\n\n      // add the personal team\n      if (options && options.allowPersonal) {\n        teamProfiles.push({\n          Name: 'Personal',\n          Id: 'personal'\n        });\n      }\n\n      // define the selectedTeamProfile\n      var selectedTeamProfile = teamProfiles[0];\n      if (activeTeamId) {\n        teamProfiles.forEach(function(t) {\n          if (t.Id == activeTeamId) { selectedTeamProfile = t; }\n        })\n      }\n\n      // prepare the callbacks\n      var getImageUrl = function(model) {\n        if (model.Id === 'personal') {\n          return 'fa-user';\n        } else {\n          return 'fa-users';\n        }\n      };\n\n      var getDisplayName = function(model) {\n        return model.Name;\n      };\n\n      var getDetailsString = function(model) {\n        if (model.Id === 'personal') {\n          return 'This is your personal account';\n        } else if (model.Role === 'admin') {\n          return 'You are currently an administrator of this team';\n        } else {\n          return 'You are part of this team as a normal user';\n        }\n      };\n\n      var description = 'Currently you are a member of several different teams. Please choose the team you want to perform the operation:';\n\n      return $scope.openObjectPickerDialog('Choose a team', description, getImageUrl, getDisplayName, getDetailsString, teamProfiles, [selectedTeamProfile], true).then(function(selectedTeamProfile) {\n        return selectedTeamProfile.Id;\n      })\n    });\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaDashboardsCtrl', function ($scope, $stateParams, $state, $q, $eaCurrentSession, $eaBackendDataModeSelector, $eaConfig, $toolbar, $controller, $modal, $eaBackend, $eaSession2, $eaDataCoordinator, $rootScope, $eaWidgetDashboardManager, $eaUserProfile, $eaTeamManagement, $eaLocalSettings, $eaBilling, $eaReportData, ngToast, $busy, jwtHelper, $window, $interval, $acTimelineGenerator, $timeout, $eaWidgetRepository) {\n\n  // inject the mixins\n  $.extend(self, $controller('BrandingCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('SessionHelperCtrlMixin', {$scope: $scope, $eaBackendDataModeSelector: $eaBackendDataModeSelector, $eaSession2: $eaSession2, $state: $state }));\n  $.extend(self, $controller('TeamsChooseTeamMixinCtrl', {$scope: $scope, $modal: $modal, $controller: $controller, $q: $q, $eaTeamManagement: $eaTeamManagement }));\n  $.extend(self, $controller('ManageContractSettingsCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('NotificationSettingsCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('SurveyCtrlMixin', {$scope: $scope, $modal: $modal, $eaBackend: $eaBackend, $window: $window }));\n  $.extend(self, $controller('ModalObjectPickerCtrlMixin', {$scope: $scope, $modal: $modal }));\n\n  // contains the different dashboards\n  // { name: \"xxx\", id: \"yyy\" }\n  $scope.dashboards = [];\n  $scope.dashboardsMap = {};\n  $scope.activeDashboard = null;\n  $scope.dataToken = $eaCurrentSession.DataToken;\n  $scope.activeUser = null;\n  $scope.dashboardEditMode = false;\n  $scope.rienabled = false;\n\n  $scope.autoRefreshInformation = {\n    enabled:  false,\n    timer:    1000,\n    timeout:  1000 * 60 * 30,\n    timeoutDefault: 1000 * 60 * 30,\n    timeoutHandle: undefined\n  };\n\n  // check the caps\n  $scope.rienabled = $eaCurrentSession.hasCap('ri');\n  $eaConfig.riEnabled = $scope.rienabled;\n\n  // wait until the extended user profile is available\n  return $eaUserProfile.load($eaCurrentSession.DataToken).then(function(profile) {\n\n    // configure margin\n    $eaBackendDataModeSelector.enableNoMargin($stateParams.nomargin === 'true');\n\n    // the profile\n    $scope.activeUser = profile;\n    $scope.activeTeamProfile = $eaUserProfile.getTeam(profile, $stateParams.teamid);\n    $scope.activeRoleInTeam = ($eaTeamManagement.isAdminInOfTeam(profile, $stateParams.teamid) || $stateParams.teamid == 'personal') ? 'admin' : 'member';\n\n    // shows a notification for the user in case if expired token\n    function notifyUserAboutExpiredToken(dashboard) {\n      if (!dashboard) { return; }\n\n      // check special contract\n      if (dashboard.Name === 'EA-98989898') { return; }\n\n      // load the contract details\n      $eaReportData.loadContractDetails(dashboard.Team, dashboard.Enrollment, $eaCurrentSession.DataToken, {maxPeriods: dashboard.MaxPeriods}).then(function(contractDetails) {\n\n        // check if we have a token\n        if (!contractDetails.Token) { return; }\n\n        // verify our token\n        try {\n\n          // check if token is expired\n          if (jwtHelper.isTokenExpired(contractDetails.Token)) {\n            ngToast.create({\n              className: 'danger',\n              content:\n              '<strong>Alert!</strong> The security token for the Azure Enterprise Portal is expired and needs to <a href=\"https://azurecostmonitor.uservoice.com/knowledgebase/articles/512546-renew-the-azure-ea-token-when-it-expires\" target=\"_new\">be renewed</a>. Please <br>' +\n              'visit the settings section and update the security token for your Enterprise Agreement. Azure Costs will <br>'+\n              'receive data from Microsoft within the next sync interval after updating the security token automatically.'\n            });\n          }\n\n        } catch (error) {\n\n          // at this point the token is invalid\n          ngToast.create({\n            className: 'danger',\n            content:\n            '<strong>Alert!</strong> The security token for the Azure Enterprise Portal is invalid and needs to <a href=\"https://azurecostmonitor.uservoice.com/knowledgebase/articles/512546-renew-the-azure-ea-token-when-it-expires\" target=\"_new\">be renewed</a>. Please <br>' +\n            'visit the settings section and update the security token for your Enterprise Agreement. Azure Costs will <br>' +\n            'receive data from Microsoft within the next sync interval after updating the security token automatically.'\n          });\n\n        }\n      });\n    };\n\n    // update the navbar menu\n    function updateControllerNavBarMenu() {\n\n      // check if we are CSP\n      var isCspCustomer = ($scope.activeDashboard.EnrollmentDefinition === 'CSP');\n\n      // allow to set the refresh operation\n      $toolbar.addItem('toggleAutoRefresh', ($scope.autoRefreshInformation.enabled ? 'Auto-Refresh in ' + ($scope.autoRefreshInformation.timeout / 1000).toString().toHHMMSS() : 'Enable Auto-Refresh'), 'fa-clock-o', \"Enables or disables the automatic refresh operation\", true, $scope.toggleAutoRefresh);\n\n      // Switch Team\n      if ($eaTeamManagement.getTeams(profile).length > 0) {\n        $toolbar.addItem('switchTeam', 'Switch Team', 'fa-users', \"Allows to switch to another team\", true, function () {\n          $scope.openTeamChooser(profile, $stateParams.teamid, 'member', $eaCurrentSession, {allowPersonal: true}).then(function (selectedTeamId) {\n            $state.go('authorized.teams.dashboards', {teamid: selectedTeamId});\n          })\n        });\n      }\n\n      // Add Contract\n      if (!isCspCustomer) {\n        $toolbar.addItem('addContract', 'Add', 'fa-plus', \"Adds an additional EA contract to your account\", true, $scope.addContract);\n      }\n\n      // check if the user a team admin\n      var isAdmin = ($scope.activeRoleInTeam == 'admin');\n      var isRealTeamContract = ($stateParams.teamid != 'personal');\n\n      // Open the Settings dialog\n      if (isAdmin) {\n\n        // add general settings\n        $toolbar.addItem('generalSettings', 'Settings', 'fa-cogs', null, isAdmin, null);\n\n        if (!isCspCustomer) {\n\n          // Open the settings for CSP\n          $toolbar.addItem('generalSettings.openSettings', 'General', 'fa-cog', \"Allows to manage settings for the registered contracts\", true, $scope.openSettingsDialog, null, 'generalSettings');\n        } else {\n          // Open the contract settings dialog\n          $toolbar.addItem('generalSettings.openSettings', 'General', 'fa-cog', \"Allows to manage settings for the registered contracts\", true, $scope.openSettingsDialog, null, 'generalSettings');\n\n        }\n\n        // Open the notification settings dialog\n        $toolbar.addItem('generalSettings.openNotificationSettings', 'Notifications', 'fa-envelope', \"Allows to manage notification settings for the registered contracts\", true, $scope.openNotiSettingsDialog, null, 'generalSettings');\n\n        // Open the notification settings dialog\n        $toolbar.addItem('generalSettings.openTriggers', 'Triggers', 'fa-bolt', \"Allows to manage triggersfor the registered contracts\", true, $scope.openTriggers, null, 'generalSettings');\n        \n        // Add Branding option as child of the settings\n        if (isRealTeamContract) { $toolbar.addItem('generalSettings.openBranding', 'Edit Branding', 'fa-css3', \"Allows to configure a specific team branding\", true, $scope.openBrandingDialogEx, null, 'generalSettings'); }\n\n        // check if we have at least a professional plan\n        if ($eaBilling.hasRequiredPlan($scope.activeTeamProfile.AccountPlan, 'professional') || $eaCurrentSession.isActAsSession()) {\n\n          // define a prefix\n          var prefix = $eaCurrentSession.isActAsSession() ? '(ActAs) ' : '';\n\n          // Add Sync operation as child of the settings\n          if (!isCspCustomer) {\n            $toolbar.addItem('generalSettings.performSync', prefix + 'Trigger Sync', 'fa-random', \"Start synchronization with the Microsoft EA portal\", true, $scope.startMonthSync, null, 'generalSettings');\n\n            $toolbar.addItem('generalSettings.performMonthSync', prefix + 'Re-Sync All', 'fa-recycle', \"Start synchronization with the Microsoft EA portal\", true, $scope.startFullSync, null, 'generalSettings');\n          }\n\n        }\n\n      } else {\n\n        $toolbar.addItem('generalSettingsOpenNotificationSettings', 'Notifications', 'fa-envelope', \"Allows to manage notification settings for the registered contracts\", true, $scope.openNotiSettingsDialog, null);\n      }\n\n      // Purge Caches\n      $toolbar.addItem('generalSettings.purgeCaches', 'Purge Reports', 'fa-eraser', \"Cleans up all pre calculated reports\", true, $scope.purgeReportCaches, null, 'generalSettings');\n\n      // Reload operation\n      $toolbar.addItem('performReload', 'Reload', 'fa-refresh', \"Current data will be refreshed\", true, $scope.reloadData);\n    }\n\n    $scope.toggleAutoRefresh = function() {\n      $scope.autoRefreshInformation.enabled = !$scope.autoRefreshInformation.enabled;\n      $scope.autoRefreshInformation.timeout = $scope.autoRefreshInformation.timeoutDefault;\n      updateControllerNavBarMenu();\n\n      if ($scope.autoRefreshInformation.enabled) {\n        $scope.autoRefreshInformation.timeoutHandle = $interval(function() {\n\n          // reduce the timeout\n          $scope.autoRefreshInformation.timeout = $scope.autoRefreshInformation.timeout - $scope.autoRefreshInformation.timer;\n\n          // update the ui\n          updateControllerNavBarMenu();\n\n          // check if we need to execute a reload\n          if ( $scope.autoRefreshInformation.timeout <= 0) {\n            $scope.autoRefreshInformation.timeout = $scope.autoRefreshInformation.timeoutDefault;\n            $scope.refreshScreen();\n          }\n        }, $scope.autoRefreshInformation.timer);\n      } else {\n        $interval.cancel($scope.autoRefreshInformation.timeoutHandle);\n        $scope.autoRefreshInformation.timeoutHandle = undefined;\n      }\n    };\n\n    $scope.addContract = function() {\n      $state.go('authorized.teams.contracts.add', { teamid: $stateParams.teamid});\n    };\n\n    $scope.reloadData = function () {\n      if ($scope.activeDashboard) {\n\n        // reload the widgets\n        $eaWidgetDashboardManager.reload($scope.activeDashboard.Id);\n      }\n    };\n\n    $scope.refreshScreen = function() {\n      $state.go($state.current.name, { initial: null }, {reload: true});\n    };\n\n    $scope.selectDashboard = function(dashboard) {\n\n      // load the contract information\n      var contractPromise = $q.resolve();\n\n      if (!dashboard.ContractInfo) {\n        contractPromise = $eaBackend.dataGetContractInfo(dashboard.Team,dashboard.Id, $eaCurrentSession.DataToken);\n      }\n\n      // render\n      return contractPromise.then(function(contractInfo) {\n\n        // set the info\n        dashboard.ContractInfo = contractInfo;\n        if (!dashboard.ContractInfo) { dashboard.ContractInfo = { billingDay: 1 } };\n\n        // select the dashboard\n        if ($scope.activeDashboard) {\n          $scope.activeDashboard.Active = false;\n        }\n        $scope.activeDashboard = dashboard;\n        $scope.activeDashboard.Active = true;\n        $eaLocalSettings.activeDashboard = dashboard.Id;\n\n        // configure the billing cycle\n        $eaBackendDataModeSelector.enableBillingCycle($stateParams.cycle === 'billing', $scope.activeDashboard.ContractInfo.billingDay);\n\n        // update the url\n        $state.transitionTo('authorized.teams.dashboards', {\n          active: dashboard.Id,\n          cycle: $eaBackendDataModeSelector.isBillingCycleEnabled() ? 'billing' : 'monthly'\n        }, {\n          location: true,\n          inherit: true,\n          relative: $state.$current,\n          notify: false\n        });\n\n        // notify the user\n        notifyUserAboutExpiredToken($scope.activeDashboard);\n      });\n    };\n\n    $scope.openBrandingDialogEx = function() {\n      $scope.openBrandingDialog($eaCurrentSession, $stateParams.teamid).then(function(brandingSettings) {\n        $eaBackend.dataUpdateBranding($stateParams.teamid, brandingSettings, $eaCurrentSession.DataToken);\n      })\n    };\n\n    $scope.toggelEditMode = function() {\n      // toggle the edit mode\n      $scope.dashboardEditMode = !$scope.dashboardEditMode;\n    };\n\n    $scope.startAddCustomWidget = function() {\n      $eaWidgetRepository.showRepository();\n    };\n\n    $scope.openSettingsDialog = function() {\n      $busy.during($eaReportData.loadContractDetails($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken)).then(function(loadedContractInformation) {\n\n        // check if we are CSP\n        var isCspCustomer = (loadedContractInformation.Definition === 'CSP');\n\n        $scope.openManageSettingsDialog(loadedContractInformation, $scope.activeRoleInTeam, isCspCustomer).then(function (updatedContractInformation) {\n\n          if (updatedContractInformation.action === 'remove') {          \n            $busy.during($eaBackend.dataDeleteContract($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken).finally(function () {\n              $state.reload();\n            }));          \n          } else {\n            $busy.during($eaBackend.dataUpdateContract($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, updatedContractInformation.contract, $eaCurrentSession.DataToken)).then(function () {\n              if (loadedContractInformation.Periods != updatedContractInformation.contract.Periods) {\n                $eaUserProfile.invalidate();\n                $eaDataCoordinator.invalidate($scope.activeUser.cacheHash);\n                $state.reload();\n              } else {\n                $scope.reloadData();\n              }\n            });\n          }\n        })\n      });\n    };\n\n    $scope.openTriggers = function() {\n      if ($scope.activeDashboard) {        \n        $window.location.href = '/app2/teams/' + $scope.activeDashboard.Team + '/apps/contracts/' + $scope.activeDashboard.Id + '/triggers';\n      }\n    }\n\n    $scope.openNotiSettingsDialog = function() {\n      $busy.during($eaReportData.loadContractDetails($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken)).then(function(loadedContractInformation) {\n        $busy.during($eaBackend.dataGetContractNotifcationSettings($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken)).then(function (loadedNotificationSettings) {\n          $scope.openNotificationSettingsDialog(loadedContractInformation, loadedNotificationSettings, $scope.activeTeamProfile, $scope.activeRoleInTeam).then(function (updatedData) {\n            return $busy.during($eaBackend.updateGetContractNotifcationSettings($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, updatedData.notificationInformation, $eaCurrentSession.DataToken, updatedData.default ? { Default: true } : {})).then(function() {\n              if (updatedData.sendMail) {\n                return $eaBackend.triggerContractNotificationForUser($scope.activeDashboard.Team,  $eaCurrentSession.UserId, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken).then (function() {\n\n                  // notify the user\n                  ngToast.create({\n                    className: 'success',\n                    content: '<strong>Great!</strong> The notifcation settings was updated successfully and a test mail was triggered to <strong>' + $eaCurrentSession.Contact + '</strong>. It should not take longe than a couple minutes.'\n                  });\n\n                })\n              } else {\n\n                // notify the user\n                ngToast.create({\n                  className: 'success',\n                  content: '<strong>Great!</strong> The notifcation settings was updated successfully'\n                });\n\n                return $q.resolve();\n              }\n            })\n          })\n        });\n      });\n    };\n\n    $scope.purgeReportCaches = function() {\n      var ok = confirm('Do you really want to purge all cached reports for this contract? This will remove all pre-calculated reports and it could take a while until the re-calculation is executed!');\n      if (ok) {\n\n        // clean up\n        $busy.message = \"Cleaning up all report caches\";\n        $busy.during($eaBackend.dataPostPurgeContractReports($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken));\n\n        // reload\n        $scope.reloadData();\n      }\n    };\n\n    $scope.startMonthSync = function() {\n\n      // load the contract details\n      $eaReportData.loadContractDetails($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken).then(function(contractDetails) {\n\n\n        // preselect the current month\n        var currentMonth = (new Date()).currentMonthDefinition();\n\n        // description\n        var description = 'Please select all months you want to re-sync. Azure Costs will override all ' +\n                          'existing information for this month and downloads the spending data freshly ' +\n                          'from Microsoft:';\n\n        // report timeline\n        var reportStrings = $acTimelineGenerator.createMonthList(12, $acTimelineGenerator.addMonth(new Date(), -11));\n        if (contractDetails && contractDetails.Periods && contractDetails.Periods === 24) {\n          reportStrings = $acTimelineGenerator.createMonthList(24, $acTimelineGenerator.addMonth(new Date(), -23));\n        }\n\n        // show the month selector\n        return $scope.openObjectPickerDialog('Select month to sync', description, 'fa-calendar-o', undefined, undefined, reportStrings.sortSimple().reverse(), [currentMonth], false).then(function (selectedMonthes) {\n\n          // notify the user\n          ngToast.create({\n            className: 'success',\n            content: '<strong>Great!</strong> A new sync for your contract <strong>' + $scope.activeDashboard.Name + '</strong> is started. This can take a couple seconds or minutes. If you don\\'t see new reports after more than 15 minutes give us a note.'\n          });\n\n          // use the new api if requires\n          if ($scope.activeDashboard.EnrollmentDefinition === 'AWS' || $scope.activeDashboard.EnrollmentDefinition === 'GCP') {\n\n            return $eaBackend.dataMonthSyncReportsV2($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, selectedMonthes, $eaCurrentSession.DataToken).catch(function (e) {\n\n              // schedule the syncs\n              selectedMonthes.forEach(function (month) {\n\n                // notify regarding error\n                ngToast.create({\n                  className: 'error',\n                  content: '<strong>Error!</strong> Failed to process the synchronisation request of month <strong>' + month + '</strong> - Error: ' + e\n                });\n              });\n            });\n\n          } else {\n            // schedule the syncs\n            selectedMonthes.forEach(function (month) {\n\n              // start the sync\n              $eaBackend.dataMonthSyncReports($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, month, $eaCurrentSession.DataToken).catch(function (e) {\n\n                // notify regarding error\n                ngToast.create({\n                  className: 'error',\n                  content: '<strong>Error!</strong> Failed to process the synchronisation request of month <strong>' + month + '</strong> - Error: ' + e\n                });\n\n              });\n            });\n          }\n        });\n      });\n    };\n\n    $scope.startFullSync = function() {\n\n      // notify the user\n      ngToast.create({\n        className: 'success',\n        content: '<strong>Great!</strong> A new sync for your contract <strong>' + $scope.activeDashboard.Name + '</strong> is started. This can take a couple seconds or minutes. If you don\\'t see new reports after more than 15 minutes give us a note.'\n      });\n\n      // use the new api if requires\n      if ($scope.activeDashboard.EnrollmentDefinition === 'AWS' || $scope.activeDashboard.EnrollmentDefinition === 'GCP') {\n\n          // load the contract details\n          return $eaReportData.loadContractDetails($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken).then(function(contractDetails) {\n\n            return $eaBackend.dataMonthSyncReportsV2($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, contractDetails.Reports, $eaCurrentSession.DataToken).catch(function (e) {\n\n              // notify regarding error\n              ngToast.create({\n                className: 'error',\n                content: '<strong>Error!</strong> Failed to process the synchronisation request: ' + e\n              });\n\n            });\n          });\n\n        } else {\n          // start the sync\n          return $eaBackend.dataAllSyncReports($scope.activeDashboard.Team, $scope.activeDashboard.Enrollment, $eaCurrentSession.DataToken).catch(function (e) {\n\n            // notify regarding error\n            ngToast.create({\n              className: 'error',\n              content: '<strong>Error!</strong> Failed to process the synchronisation request: ' + e\n            });\n\n          });\n      }\n    };\n\n    // get the available contracts\n    var availableContracts = $eaUserProfile.getContracts(profile);\n\n    // generate the dashboards\n    availableContracts.forEach(function(contract) {\n\n      // check if the contract is in this team\n      if (contract.Team !== $stateParams.teamid) { return; }\n\n      // define the dashboarditem\n      var dashboardItem = {\n        Name: contract.Definition === 'EA' ? 'EA-' + contract.Enrollment : contract.Name,\n        Id: contract.Enrollment,\n        Team: contract.Team,\n        Enrollment: contract.Enrollment,\n        EnrollmentDefinition: contract.Definition,\n        Active: false,\n        Licensed: !(($scope.activeTeamProfile.AccountPlan !== 'enterprise' && $scope.activeTeamProfile.AccountPlan !== 'csp') && !$eaBilling.isAccountOwner($scope.activeUser.UserId, $scope.activeTeamProfile)),\n        State: $stateParams.initial && $stateParams.initial === contract.Enrollment ? 'pending' : 'ready',\n        Profile: $scope.activeUser,\n        MaxPeriods: contract.Periods,\n        Collection: contract.ResellerApiVersion && contract.ResellerApiVersion === 'v2' ? 'spendings.v2' : null,\n        ContractInfo: undefined\n      };\n\n      // patch demo\n      if (contract.Name === 'EA-98989898') {\n        dashboardItem.Name = contract.Name;\n      }\n\n      // check AWS or GCP\n      if (dashboardItem.EnrollmentDefinition === \"AWS\" || dashboardItem.EnrollmentDefinition === \"GCP\") {\n        dashboardItem.Collection = \"spendings.v3\";\n      }\n\n      // override the version from state parameter\n      if ($stateParams.version && contract.Definition !== 'EA') {\n        dashboardItem.Collection = 'spendings.' + $stateParams.version;\n        if ($stateParams.version != 'v2') {\n          dashboardItem.Collection = null;\n        }\n      }\n\n      // add the contract\n      $scope.dashboards.push(dashboardItem);\n      $scope.dashboardsMap[dashboardItem.Id] = dashboardItem;\n\n      $eaWidgetDashboardManager.onDashboardFunction(dashboardItem.Id, 'func:6801CF0C-51A8-4814-B456-4777D0FA74D8', function (args) {\n        var enabledState = $eaBackendDataModeSelector.isBillingCycleEnabled() ? 'BillingCycle' : 'Default';\n        return $eaWidgetDashboardManager.finishDashboardFunction(dashboardItem.Id, args, enabledState, null);\n      });\n\n      $eaWidgetDashboardManager.onDashboardFunction(dashboardItem.Id, 'func:BBB71FCA-AB10-4851-A59F-89E68B4FDE3A', function (args) {\n\n        if (args.args.state === 'BillingCycle') {\n          $eaBackendDataModeSelector.enableBillingCycle(true, $scope.activeDashboard.ContractInfo.billingDay);\n        } else {\n          $eaBackendDataModeSelector.enableBillingCycle(false, 1);\n        }\n\n        // update the url\n        $state.transitionTo('authorized.teams.dashboards', {\n          active: $scope.activeDashboard.Id,\n          cycle: $eaBackendDataModeSelector.isBillingCycleEnabled() ? 'billing' : 'monthly'\n        }, {\n          location: true,\n          inherit: true,\n          relative: $state.$current,\n          notify: false\n        });\n\n        return $timeout(function() {}, 100).then(function () {\n          return $eaWidgetDashboardManager.finishDashboardFunction(dashboardItem.Id, args, true, null);\n        });\n      });\n\n      $eaWidgetDashboardManager.onDashboardFunction(dashboardItem.Id, 'func:2DD4B2BC-983F-434B-B449-7A655AEE2D23', function (args) {\n\n        var hintText = '';\n        var periodDate = new Date(args.args.selectedPeriod);\n\n        if ($eaBackendDataModeSelector.isBillingCycleEnabled()) {\n          var billingDay = $eaBackendDataModeSelector.getBillingCycleDay();\n          if (billingDay !== 1) {\n            periodDate = $acTimelineGenerator.addMonth($acTimelineGenerator.addDay(periodDate, billingDay - 1), -1);\n          }\n        }\n\n        if (periodDate > new Date()) {\n          hintText = \"No consumption data available because period between <strong>\" + periodDate.toDateString() + \"</strong> - <strong>\" + $acTimelineGenerator.addDay($acTimelineGenerator.addMonth(periodDate), -1).toDateString() + \"</strong> not started yet\";\n        } else {\n          hintText = \"Consumption between <strong>\" + periodDate.toDateString() + \"</strong> - <strong>\" + $acTimelineGenerator.addDay($acTimelineGenerator.addMonth(periodDate), -1).toDateString() + \"</strong>\";\n        }\n\n        return $eaWidgetDashboardManager.finishDashboardFunction(dashboardItem.Id, args, hintText, null);\n      });\n    });\n\n    // mark the first dashboard as active\n    var selectDashboardPromise = $q.resolve();\n\n    if ($scope.dashboards.length > 0) {\n\n      // reads the dashboard from last used dashboard\n      var targetDashboard = $scope.dashboardsMap[$eaLocalSettings.activeDashboard];\n\n      // check if we need to override this via active parameter\n      if ($stateParams.active) { targetDashboard = $scope.dashboardsMap[$stateParams.active]; }\n\n      // use the fallback\n      if (!targetDashboard) { targetDashboard = $scope.dashboards[0]; }\n\n      // activate our targetdashboard\n      selectDashboardPromise = $scope.selectDashboard(targetDashboard);\n\n    } else {\n\n      // go to add becasue we have no dashboards\n      return $state.go('authorized.teams.contracts.add');\n    }\n\n    selectDashboardPromise.then(function() {\n      // update the menu navbar\n      updateControllerNavBarMenu();\n\n      // check if we ask for survey\n      $scope.askForSurveyIfNeeded($eaCurrentSession);\n    });\n  });\n});\n","angular.module('azureCostsFeApp').controller('ModalBrandingCtrl', ['$scope', '$modalInstance', '$eaBranding', '$eaBackend', 'session', 'team', function($scope, $modalInstance, $eaBranding, $eaBackend, session, team) {\n  // activate the first panel\n  $scope.activePanel = 1;\n\n  // set the current values\n  $scope.companyInformation = $eaBranding.currentCompanyInformation;\n  $scope.colorSettings = $eaBranding.currentColors;\n  $scope.customStyleSettings = $eaBranding.currentCustomCss;\n  $scope.bucketSettings = {\n    name: \"\"\n  };\n\n  // do a copy of the org values\n  $scope.orgColorSettings = angular.copy($scope.colorSettings);\n  $scope.orgCustomStyleSettings = angular.copy($scope.customStyleSettings);\n\n  $scope.companyChanged = function() {\n    $eaBranding.setCompany($scope.companyInformation);\n  };\n\n  $scope.colorChanged = function() {\n    $eaBranding.setColors($scope.colorSettings);\n  };\n\n  $scope.aceLoaded = function(_editor) {\n    $scope.aceSession = _editor.getSession();\n  };\n\n  $scope.aceChanged = function () {\n    $scope.customStyleSettings = $scope.aceSession.getDocument().getValue();\n    $eaBranding.setCustomCss($scope.customStyleSettings);\n  };\n\n  $scope.resetBranding = function() {\n    $scope.colorSettings = angular.copy($scope.orgColorSettings);\n    $eaBranding.setColors($scope.colorSettings);\n  };\n\n  $scope.resetCustomCss = function() {\n    $scope.customStyleSettings = angular.copy($scope.orgCustomStyleSettings);\n    try { $scope.aceSession.getDocument().setValue($scope.customStyleSettings) } catch(error) {};\n    $eaBranding.setCustomCss($scope.customStyleSettings);\n  };\n\n  $scope.ok = function () {\n    $modalInstance.close({colors: $scope.colorSettings, css: $scope.customStyleSettings, company: $scope.companyInformation});\n  };\n\n  $scope.cancel = function () {\n    // reset the CSS\n    $scope.resetBranding();\n    $scope.resetCustomCss();\n\n    // close\n    $modalInstance.dismiss(\"cancel\")\n  };\n}]);\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('SurveyCtrlMixin', function($scope, $modal, $eaBackend, $window) {\n\n  $scope.askForSurvey = function() {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/teams/dashboards/modals/modal_ea_survey.html\",\n      controller: 'ModalSurveyCtrl'\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n\n  $scope.askForSurveyIfNeeded = function(session) {\n\n    // check if we ask for survey\n    if (session.Surveys.Influencer === null || session.LoginCount - session.Surveys.Influencer <= 50) {\n      return\n    }\n\n    // if customer did not the survey we ask after 10 logins or every 20 more logins\n    // until he is participating\n    if (session.LoginCount !== 10 && (session.LoginCount - 10) % 20 !== 0) {\n      return;\n    }\n\n    $scope.askForSurvey().then(function () {\n\n      // register that the user participated the survey\n      $eaBackend.dataUpdateProfile({SurveyAtLogin: session.LoginCount}, session.DataToken).finally(function () {\n\n        // open survey link\n        $window.location.href = 'http://azurecosts.polldaddy.com/s/css';\n\n      });\n    });\n  }\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('BrandingCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openBrandingDialog = function(session, team) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/teams/dashboards/modals/modal_ea_branding.html\",\n      controller: 'ModalBrandingCtrl',\n      resolve: {\n        session: function() {\n          return session;\n        },\n        team: function() {\n          return team;\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ManageContractSettingsCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openManageSettingsDialog = function(contract, role, isCspCustomer) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/teams/dashboards/modals/modal_ea_manage_contract_settings.html\",\n      controller: 'ModalContractSettingsCtrl',\n      resolve: {\n        contract: function() {\n          return contract;\n        },\n        role: function() {\n          return (role ? role : 'member');\n        },\n        csp: function() {\n          return isCspCustomer ? true : false;\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('NotificationSettingsCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  /*\n   contract => {\n      DisplayName: '',\n      Currency: '',\n   }\n   */\n  $scope.openNotificationSettingsDialog = function(contract, notificationSettings, team, role) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/teams/dashboards/modals/modal_ea_notification_settings.html\",\n      controller: 'ModalNotificationSettingsCtrl',\n      resolve: {\n        contract: function() {\n          return contract;\n        },\n        notificationSettings: function() {\n          return notificationSettings;\n        },\n        role: function() {\n          return (role ? role : 'member');\n        },\n        team: function() {\n          return team;\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","angular.module('azureCostsFeApp').controller('ModalContractSettingsCtrl', function($scope, $modalInstance, contract, role, csp, $eaBackend, $busy, jwtHelper) {\n\n  $scope.contractInformation = null;\n  $scope.contractInformationVirtual = {};\n  $scope.contractTokenInPayload = false;\n\n  $scope.contractGeneralSettings = {\n    Enabled: false,\n    NotifyZeroValue: false\n  };\n\n  $scope.contractInformationCurrency = {\n    Currency: null,\n    CurrencyOther: null\n  };\n\n  $scope.currencies = [ 'EUR', 'USD', 'Other'];\n\n  $scope.retentions = [\n    { Value: 12, Display: '12 Months'},\n    { Value: 24, Display: '24 Months'}\n  ];\n\n  $scope.isCspCustomer = csp;\n\n  $scope.ok = function () {\n\n    // adjust state\n    $scope.contractInformation.Disabled = !$scope.contractGeneralSettings.Enabled;\n    $scope.contractInformation.NotifyZeroValue = $scope.contractGeneralSettings.NotifyZeroValue;\n    console.log($scope.contractGeneralSettings.Enabled);\n\n    // adjust the currency\n    if ($scope.contractInformationCurrency.Currency === 'Other') {\n        $scope.contractInformation.Currency = $scope.contractInformationCurrency.CurrencyOther;\n    } else {\n        $scope.contractInformation.Currency = $scope.contractInformationCurrency.Currency;\n    }\n\n    // done\n    $modalInstance.close({ contract: $scope.contractInformation, notificationInformation: $scope.notificationInformation});\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n\n  $scope.removeContract = function() {\n    var ok = confirm('Do you really want to remove the contract? This will remove all data from the system and you need to re-register the contract later if required.');\n    if (ok) { $modalInstance.close({action: \"remove\"}); }\n  };\n\n  $scope.generateVirtualContractInformationFromToken = function(enteredToken) {\n\n    // check the token structure\n    var decodedToken = null;\n    var tokenExpired = false;\n    try {\n      decodedToken = jwtHelper.decodeToken(enteredToken);\n      tokenExpired = jwtHelper.isTokenExpired(enteredToken);\n    } catch(error) {\n      decodedToken = null;\n    }\n\n    if (decodedToken) {\n\n\n      $scope.contractInformationVirtual.decodedToken = decodedToken;\n      $scope.contractInformationVirtual.tokenExpired = tokenExpired;\n      $scope.contractInformationVirtual.expirationDate = new Date($scope.contractInformationVirtual.decodedToken.exp * 1000);\n\n      if ($scope.contractInformationVirtual.decodedToken.ReportView === \"IndirectEnterprise\") {\n        $scope.contractInformationVirtual.indirectContract = true;\n      } else {\n        $scope.contractInformationVirtual.indirectContract = false;\n      }\n\n      $scope.contractInformationVirtual.validToken = true;\n\n    } else {\n        $scope.contractInformationVirtual.validToken = false;\n    }\n  };\n\n  // set the contract\n  $scope.contractInformation = JSON.parse(JSON.stringify(contract));\n  $scope.contractGeneralSettings.Enabled = !$scope.contractInformation.Disabled;\n  $scope.contractGeneralSettings.NotifyZeroValue = $scope.contractInformation.NotifyZeroValue ? true : false;\n\n  // set the role\n  $scope.role = role;\n\n  // set the currency information\n  if ($scope.currencies.indexOf(contract.Currency) == -1) {\n      $scope.contractInformationCurrency.Currency= 'Other';\n      $scope.contractInformationCurrency.CurrencyOther = contract.Currency;\n  } else {\n      $scope.contractInformationCurrency.Currency= contract.Currency;\n      $scope.contractInformationCurrency.CurrencyOther = null;\n  }\n\n  // calculate the virtual settings\n  if ( $scope.contractInformation.DisplayName !== 'EA-98989898' && $scope.contractInformation.Token !== null && $scope.contractInformation.Token !== undefined) {\n    $scope.contractInformationVirtual.showTokenDialog = true;\n    $scope.generateVirtualContractInformationFromToken($scope.contractInformation.Token);\n    $scope.contractTokenInPayload = true;\n  }\n\n  $scope.getContractType = function() {\n    if ( $scope.contractInformationVirtual.indirectContract ) {\n      return \"Indirect Contract (Contract brought via Microsoft Reseller)\";\n    } else {\n      return \"Direct Contract (Contract brought directly at Microsoft)\";\n    }\n  };\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaTeamManageCtrl', function ($scope, $eaSession2, $eaBackend, $busy, $stateParams, $controller, $modal, $q, $eaConfig,$toolbar, $location,$eaUserProfile, $eaCurrentSession, rfc4122, ngToast, $eaReportData) {\n\n  $.extend(self, $controller('TeamEditUsersCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('TeamEditAppCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('TeamEditPermissionsCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('TeamsChooseContractMixinCtrl', {$scope: $scope, $modal: $modal, $controller: $controller, $eaUserProfile: $eaUserProfile }));\n  $.extend(self, $controller('TeamManagementCtrlMixin', {$scope: $scope, $eaBackend: $eaBackend, $q: $q }));\n  $.extend(self, $controller('NotificationSettingsCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('ModalSingleLineBoxCtrlMixin', {$scope: $scope, $modal: $modal }));\n\n  $scope.sessionLoaded  = false;\n  $scope.teamProfile    = undefined;\n  $scope.teamLogo       = undefined;\n  $scope.teamAADConnection = undefined;\n  $scope.availableRoles = [ { display: 'Member', value: 'member' }, { display: 'Administrator', value: 'admin' }];\n  $scope.bucketsEnabled = $eaConfig.features.buckets;\n\n  // generate the callback uri\n  var splittedUrl = $location.absUrl().split('/');\n  var callbackUri = splittedUrl[0] + '//' + splittedUrl[2] + '/app/teams/invitation/accept';\n\n  $scope.getDisplayName = function(user) {\n    var userName;\n    if (user.FirstName) { userName = user.FirstName + ' '; } else { userName = ''; }\n    if (user.LastName) { userName = userName + user.LastName; };\n    if (!userName) { userName = user.Contact; }\n\n    return userName;\n  };\n\n  // allows to add a user\n  $scope.addUser = function() {\n\n      var existingUsers = $scope.teamProfile.Members.filter(function(user) {\n        return user.Type !== 'app-only'\n      });\n\n      $scope.openTeamEditUserDialog(existingUsers, $scope.teamProfile.CloudSolutionProvider).then(function(result) {\n\n          // wait for operations\n          var operationPromisses= [];\n\n          // removing all removed users\n          result.removedUsers.forEach(function(user) {\n            operationPromisses.push($scope.deleteUserFromTeam($stateParams.teamid, user, $eaCurrentSession.DataToken));\n          });\n\n          // inviting all other users\n          result.newUsers.forEach(function(user) {\n\n            if ($scope.hasUserRole(user, 'notification'))\n            {\n              operationPromisses.push($eaBackend.dataRegisterUserToTeam($stateParams.teamid, user.Contact, user.Role, user.Subscriptions, $eaCurrentSession.DataToken));\n            } else {\n\n              var fullAccess = false;\n\n              if (user.Subscriptions && user.Subscriptions['*']) {\n                fullAccess = true;\n              }\n\n              operationPromisses.push($eaBackend.dataInviteUserToTeamV2($stateParams.teamid, user.Contact, user.Role, fullAccess, callbackUri, $eaCurrentSession.DataToken));\n            }\n          });\n\n          // send out\n          $busy.during($q.all(operationPromisses).finally(function() {\n              return $scope.reloadData();\n          }));\n      })\n  };\n\n  $scope.editPermissions = function(user) {\n\n    // load all contracts for this team\n    $busy.setMessage('Loading Subscriptions');\n    $busy.during($eaBackend.helperGetAvailableSubscriptions($stateParams.teamid, $eaCurrentSession.DataToken)).then(function(availableSubscriptions) {\n\n        $scope.openTeamEditPermissionsDialog(user, availableSubscriptions).then(function (result) {\n\n            $busy.during($eaBackend.dataUpdateTeamMembership($stateParams.teamid, user.UserId, user.Role, result, undefined, $eaCurrentSession.DataToken).finally(function() {\n              return $scope.reloadData();\n            }));\n        })\n    });\n  };\n\n  $scope.editNotifications = function(user) {\n\n    // ensure we have a fresh profile\n    return $eaUserProfile.load($eaCurrentSession.DataToken, true).then(function(profile) {\n\n      // show the select contract dialog\n      return $scope.openContractChooser(profile, {team: $scope.teamProfile.Id}).then(function(selectedContract) {\n\n        // load some contract information\n        return $busy.during($eaReportData.loadContractDetails($scope.teamProfile.Id, selectedContract.Enrollment, $eaCurrentSession.DataToken)).then(function(loadedContractInformation) {\n\n          // load the notification settings for the selected contract and user\n          return $busy.during($eaBackend.dataGetContractNotifcationSettingsForUser($scope.teamProfile.Id, selectedContract.Enrollment, user.UserId, $eaCurrentSession.DataToken)).then(function (loadedNotificationSettings) {\n\n            // open the select permissions dialog\n            $scope.teamProfile.AccountPlan = 'enterprise';\n            return $scope.openNotificationSettingsDialog(loadedContractInformation, loadedNotificationSettings, $scope.teamProfile, 'member').then(function (updatedData) {\n\n              // store everything\n              return $busy.during($eaBackend.updateGetContractNotifcationSettingsForUser($scope.teamProfile.Id, selectedContract.Enrollment, user.UserId, updatedData.notificationInformation, $eaCurrentSession.DataToken));\n            });\n          });\n        });\n      });\n    })\n\n  };\n\n  $scope.addApp = function() {\n    var newApp = { Name: \"\", ClientId: rfc4122.v4(), ClientSecret: rfc4122.v4(), Role: \"member\", WildCardSubscriptions: true };\n    $scope.openTeamEditAppDialog(newApp).then(function(appModel) {\n      var subscriptions = appModel.WildCardSubscriptions ? { '*': ['*'] } : {};\n      return $busy.during($eaBackend.dataRegisterAppToTeam($stateParams.teamid, appModel.Name, appModel.ClientId, appModel.ClientSecret, appModel.Role, subscriptions, $eaCurrentSession.DataToken).finally(function() {\n        return $scope.reloadData();\n      }));\n    })\n  };\n\n  $scope.deleteUserFromTeamEx = function(user) {\n\n      var deleteOk = confirm(\"Do you really want to remove user \" + $scope.getDisplayName(user) + ' from this team?');\n\n      if (deleteOk) {\n\n          $busy.setMessage('Removing User');\n\n          $busy.during($scope.deleteUserFromTeam($stateParams.teamid, user, $eaCurrentSession.DataToken).then(function () {\n\n            // just remove from the collection\n            var idx = $scope.teamProfile.Members.indexOf(user);\n            if (idx != -1) {\n                $scope.teamProfile.Members.splice(idx, 1);\n            }\n\n          }));\n      }\n  };\n\n  $scope.resendInvitation = function(user) {\n\n      // build the invitation id\n      var invitationId = user.UserId.replace(/PSEUDO:/g,'');\n\n      // reinvite\n      $busy.during($eaBackend.dataReInviteUserToTeam($stateParams.teamid, invitationId, callbackUri, $eaCurrentSession.DataToken).then(function() {\n        ngToast.create({\n          className: 'success',\n          content:\n          '<strong>Invitation Sent!</strong> The invitation notification was send again to <strong>' + user.Contact + '</strong>'\n        });\n      }));\n  };\n\n  $scope.reloadData = function() {\n\n      // load the user profile to get the information if the user is allowed to manage the team\n      return $eaUserProfile.load($eaCurrentSession.DataToken, true).then(function(profile) {\n\n        $scope.activeTeamBilling = $eaUserProfile.getTeam(profile, $stateParams.teamid);\n\n        return $eaBackend.dataGetTeamProfile($stateParams.teamid, true, $eaCurrentSession.DataToken).then(function (teamProfile) {\n\n          return $eaBackend.dataGetTeamImageLocation($stateParams.teamid).then(function (profileImageLocation) {\n\n            $scope.teamProfile = teamProfile;\n            $scope.teamLogo = profileImageLocation;\n\n            return $eaBackend.dataGetAADConnections($stateParams.teamid, $eaCurrentSession.DataToken).then(function (connections) {\n              if (connections && connections.length > 0) {\n                $scope.teamAADConnection = connections[0];\n              } else {\n                $scope.teamAADConnection = null;\n              }\n            })\n          });\n        });\n      });\n  };\n\n  $scope.reloadDataWithBusy = function() {\n\n      $busy.setMessage(\"Loading Team...\");\n\n      return $busy.during($scope.reloadData());\n  };\n\n  $scope.updateTeamName = function(data) {\n    return $eaBackend.dataUpdateTeamProfile($stateParams.teamid, { Name: data }, $eaCurrentSession.DataToken).then(function() {\n      return true;\n    });\n  };\n\n  $scope.updateTeamImage = function(image) {\n    return $eaBackend.dataUpdateTeamImage($stateParams.teamid, image, $eaCurrentSession.DataToken);\n  };\n\n  $scope.linkAAD = function() {\n    $location.url('/teams/' + $stateParams.teamid + '/manage/aad/link');\n  };\n\n  $scope.editAAD = function() {\n    $location.url('/teams/' + $stateParams.teamid + '/manage/aad/edit');\n  };\n\n  $scope.openBuckets = function() {\n    $location.url('/teams/' + $stateParams.teamid + '/manage/buckets');\n  };\n\n  $scope.openSettings = function() {\n    $location.url('/teams/' + $stateParams.teamid + '/manage/settings');\n  };\n\n  $scope.changeUserRole = function(user) {\n\n    // check if we need to reset teh users subscriptions\n    if (user.Role === 'admin') {\n      user.Subscriptions = {'*': ['*']};\n    }\n\n    $busy.during($eaBackend.dataUpdateTeamMembership($stateParams.teamid, user.UserId, user.Role, user.Subscriptions, undefined, $eaCurrentSession.DataToken).finally(function() {\n      return $scope.reloadData();\n    }));\n  };\n\n  $scope.editContactAddress = function(user) {\n    $scope.openSingleLineBox(\"Update Contact Information\", \"Please enter a new e-mail address to update the contact information of your team member.\", user.Contact).then(function(updatedContact) {\n      $busy.during($eaBackend.dataUpdateTeamMembership($stateParams.teamid, user.UserId, undefined, undefined, updatedContact, $eaCurrentSession.DataToken).finally(function() {\n        return $scope.reloadData();\n      }));\n    });\n  };\n\n  $scope.getClientId = function(appProfile) {\n    return appProfile.Contact.split('@')[0];\n  };\n\n  // Add Back Entry\n  $toolbar.addItem('manageTeam.Back', 'Back to Reports', 'fa-chevron-left', null, true, '/signin');\n\n  // Sync operation\n  $toolbar.addItem('manageTeam.performReload', 'Reload', 'fa-refresh', \"Current data will be refreshed\", true, $scope.reloadDataWithBusy);\n\n\n  return $scope.reloadData().then(function() {\n      $scope.sessionLoaded  = true;\n  });\n});\n","angular.module('azureCostsFeApp').controller('ModalNotificationSettingsCtrl', function($scope, $modalInstance, contract, notificationSettings, team, role, $eaBackend, $busy, jwtHelper, $eaBilling) {\n\n  $scope.contractInformation = null;\n  $scope.notificationInformation = null;\n  $scope.repeatInformation = {\n    Repeats: 0,\n    RepeatsEvery: 1,\n    RepeatsOnMon: false,\n    RepeatsOnTue: false,\n    RepeatsOnWed: false,\n    RepeatsOnThu: false,\n    RepeatsOnFri: false,\n    RepeatsOnSat: false,\n    RepeatsOnSun: false\n  };\n\n  $scope.activePanel = 1;\n\n  var localBreakDownFields = [\n    \"SubscriptionName\" ,\n    \"ServiceName\",\n    \"ServiceCategory\",\n    \"ServiceType\",\n    \"ServiceSize\",\n    \"ServiceUnit\",\n    \"Tag\",\n    \"ResourceGroup\"\n  ];\n\n  if (contract && contract.Definition === 'EA') {\n    localBreakDownFields.push('CostCenter');\n    localBreakDownFields.push('Department');\n  }\n\n  $scope.breakDownFields = localBreakDownFields.map(function(v) {\n    return { name: v };\n  });\n\n  $scope.repeatsFields = [\n    { name: 'Daily', value: 0 },\n    { name: 'Monday, Wednesday & Friday', value: 1 },\n    { name: 'Weekday (Monday to Friday)', value: 2 },\n    { name: 'Weekly', value: 3 },\n    { name: 'Monthly', value: 4 }\n  ];\n\n  $scope.everyFieldsWeeks = [\n    { name: 'every week', value: 1 },\n    { name: 'every 2 weeks', value: 2 },\n    { name: 'every 3 weeks', value: 3 },\n    { name: 'every 4 weeks', value: 4 },\n    { name: 'every 5 weeks', value: 5 },\n    { name: 'every 6 weeks', value: 6 },\n    { name: 'every 7 weeks', value: 7 },\n    { name: 'every 8 weeks', value: 8 }\n\n  ];\n\n  $scope.breakDownFields.removeObjectByProperty('name', 'Tag');\n  $scope.breakDownFields.removeObjectByProperty('name', 'ServiceCosts');\n\n  $scope.requiredPlan = 'professional';\n  $scope.team = team;\n  $scope.hasRequiredPlan = $eaBilling.hasRequiredPlan($scope.team.AccountPlan, $scope.requiredPlan);\n\n  $scope.alertDimensions = [\n    { name: \"Costs\", display: \"Costs\" },\n    { name: \"DailyBurnrateAbs\", display: \"Daily Burn Rate (absolute)\" },\n    { name: \"DailyBurnrateRel\", display: \"Daily Burn Rate (relative)\" },\n    { name: \"DailyBurnrateDiff\", display: \"Daily Burn Rate Difference\" },\n    { name: \"DailyBurnrateMax\", display: \"Daily Burn Rate Maximum\" }\n  ];\n\n  $scope.alertDimensionUnits = {\n    DailyBurnrateRel: '%'\n  };\n\n  function setRepeatsOn(repeatsOn) {\n    $scope.repeatInformation.RepeatsOnMon = (repeatsOn.indexOf('mo') !== -1);\n    $scope.repeatInformation.RepeatsOnTue = (repeatsOn.indexOf('tu') !== -1);\n    $scope.repeatInformation.RepeatsOnWed = (repeatsOn.indexOf('we') !== -1);\n    $scope.repeatInformation.RepeatsOnThu = (repeatsOn.indexOf('th') !== -1);\n    $scope.repeatInformation.RepeatsOnFri = (repeatsOn.indexOf('fr') !== -1);\n    $scope.repeatInformation.RepeatsOnSat = (repeatsOn.indexOf('sa') !== -1);\n    $scope.repeatInformation.RepeatsOnSun = (repeatsOn.indexOf('su') !== -1);\n  }\n\n  function buildEmptyAlertPolicy() {\n    return { Dimension: undefined, Limit: undefined };\n  }\n\n  $scope.newAlertPolicy = buildEmptyAlertPolicy();\n\n  function convertRepeatsFromDisplayToModel() {\n    if ($scope.repeatInformation.Repeats === 0) {\n      $scope.notificationInformation.DailyReportRepeatsOn = ['mo', 'tu', 'we', 'th','fr', 'sa', 'su'];\n      $scope.notificationInformation.DailyReportRepeatsEvery = 1;\n    } else if ($scope.repeatInformation.Repeats === 1) {\n      $scope.notificationInformation.DailyReportRepeatsOn = ['mo', 'we', 'fr'];\n      $scope.notificationInformation.DailyReportRepeatsEvery = $scope.repeatInformation.RepeatsEvery;\n    } else if ($scope.repeatInformation.Repeats === 2) {\n      $scope.notificationInformation.DailyReportRepeatsOn = ['mo', 'tu', 'we', 'th', 'fr'];\n      $scope.notificationInformation.DailyReportRepeatsEvery = $scope.repeatInformation.RepeatsEvery;\n    } else if ($scope.repeatInformation.Repeats === 3) {\n      $scope.notificationInformation.DailyReportRepeatsOn = [];\n      if ($scope.repeatInformation.RepeatsOnMon) { $scope.notificationInformation.DailyReportRepeatsOn.push('mo'); };\n      if ($scope.repeatInformation.RepeatsOnTue) { $scope.notificationInformation.DailyReportRepeatsOn.push('tu'); };\n      if ($scope.repeatInformation.RepeatsOnWed) { $scope.notificationInformation.DailyReportRepeatsOn.push('we'); };\n      if ($scope.repeatInformation.RepeatsOnThu) { $scope.notificationInformation.DailyReportRepeatsOn.push('th'); };\n      if ($scope.repeatInformation.RepeatsOnFri) { $scope.notificationInformation.DailyReportRepeatsOn.push('fr'); };\n      if ($scope.repeatInformation.RepeatsOnSat) { $scope.notificationInformation.DailyReportRepeatsOn.push('sa'); };\n      if ($scope.repeatInformation.RepeatsOnSun) { $scope.notificationInformation.DailyReportRepeatsOn.push('su'); };\n      $scope.notificationInformation.DailyReportRepeatsEvery = $scope.repeatInformation.RepeatsEvery;\n    } else if ($scope.repeatInformation.Repeats === 4) {\n      $scope.notificationInformation.DailyReportRepeatsOn = ['mo'];\n      $scope.notificationInformation.DailyReportRepeatsEvery = 4;\n    }\n  }\n\n  $scope.ok = function () {\n    convertRepeatsFromDisplayToModel();\n    $modalInstance.close({ notificationInformation: $scope.notificationInformation, default: false, sendMail: false});\n  };\n\n  $scope.saveDefault = function() {\n    convertRepeatsFromDisplayToModel();\n    $modalInstance.close({ notificationInformation: $scope.notificationInformation, default: true, sendMail: false});\n  };\n\n  $scope.saveAndSendTestMail = function() {\n    convertRepeatsFromDisplayToModel();\n    $modalInstance.close({ notificationInformation: $scope.notificationInformation, default: false, sendMail: true});\n  };\n  \n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n  $scope.addAlertPolicy = function() {\n\n    // define the unit\n    var currency = $scope.alertDimensionUnits[$scope.newAlertPolicy.Dimension];\n    if (!currency) { currency = $scope.contractInformation.Currency; }\n    $scope.newAlertPolicy.LimitUnit = currency;\n\n    // add the alert policy\n    $scope.notificationInformation.AlertNotificationPolicies.push($scope.newAlertPolicy);\n\n    // build a new empty one\n    $scope.newAlertPolicy = buildEmptyAlertPolicy();\n  };\n\n  $scope.deleteAlertPolicy = function(policy) {\n    var idx = $scope.notificationInformation.AlertNotificationPolicies.indexOf(policy);\n    if (idx === -1) { return; }\n    $scope.notificationInformation.AlertNotificationPolicies.splice(idx, 1);\n  };\n\n  // set the contract\n  $scope.contractInformation = contract;\n\n  // set the notification settings\n  $scope.notificationInformation = notificationSettings;\n\n  // set the default repeats information\n  if ($scope.notificationInformation.DailyReportRepeatsOn === undefined) { $scope.notificationInformation.DailyReportRepeatsOn = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']; };\n  if ($scope.notificationInformation.DailyReportRepeatsEvery === undefined) { $scope.notificationInformation.DailyReportRepeatsEvery = 1; };\n\n  // convert to our more readably structure\n  setRepeatsOn($scope.notificationInformation.DailyReportRepeatsOn);\n  $scope.repeatInformation.RepeatsEvery = $scope.notificationInformation.DailyReportRepeatsEvery;\n\n  // Daily\n  if ($scope.notificationInformation.DailyReportRepeatsOn.length === 7 && $scope.notificationInformation.DailyReportRepeatsEvery == 1) {\n    $scope.repeatInformation.Repeats = 0;\n  // Monday, Wednesday & Friday\n  } else if ($scope.notificationInformation.DailyReportRepeatsOn.isSame(['mo', 'we', 'fr'])) {\n    $scope.repeatInformation.Repeats = 1;\n  } else if ($scope.notificationInformation.DailyReportRepeatsOn.isSame(['mo', 'tu', 'we', 'th','fr'])) {\n    $scope.repeatInformation.Repeats = 2;\n  } else if ($scope.repeatInformation.RepeatsEvery === 4) {\n    $scope.repeatInformation.Repeats = 4;\n  } else {\n    $scope.repeatInformation.Repeats = 3;\n  }\n\n\n  // check if we have alert notification policies\n  if (!$scope.notificationInformation.AlertNotificationPolicies) { $scope.notificationInformation.AlertNotificationPolicies = [];}\n\n  // set the role\n  $scope.role = role;\n\n  // check that we get default values for the breakdown properties\n  if (!$scope.notificationInformation.DailyReportBreakDownFirst) {\n    $scope.notificationInformation.DailyReportBreakDownFirst = $scope.breakDownFields[0].name;\n  }\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaRiManagementCtrl', function ($scope, $stateParams, $state, $eaCurrentSession, $eaUserProfile, $eaWidgetDashboardManager, $eaBilling) {\n\n  var riWelcomeDashboardId = 'ri.welcome';\n  var riPurchasedImpactDashboardId = 'ri.impact';\n\n  /*\n   * Handle the dataToken\n   */\n  $scope.dataToken = $eaCurrentSession.DataToken;\n\n  /*\n   Manage the Edit Mode\n   */\n  $scope.dashboardEditMode = false;\n\n  $scope.toggelEditMode = function() {\n    $scope.dashboardEditMode = !$scope.dashboardEditMode;\n  };\n\n  // Action: Allow to Upgrade the plan\n  $eaWidgetDashboardManager.onDashboardFunction(riWelcomeDashboardId, 'func:EC80426D-4EBD-4249-B56A-D0D458F0E3EF', function (args) {\n\n    // navigate to the scope\n    $state.go('authorized.profileBillingUpgradeEdition');\n\n  });\n\n    // load the current user profile\n  return $eaUserProfile.load($eaCurrentSession.DataToken).then(function(profile) {\n\n    // collect the available contracts for rendering our navigation\n    $scope.AvailableContracts = [];\n\n    $eaUserProfile.getContracts(profile, $stateParams.teamid).forEach(function(contract) {\n\n      // add the contact\n      $scope.AvailableContracts.push({\n        Name: contract.Definition === 'EA' ? 'EA-' + contract.Enrollment : contract.Name,\n        Id: contract.Enrollment,\n        Team: contract.Team\n      });\n    });\n\n    // get the team model\n    var teamProfile = $eaUserProfile.getTeam(profile, $stateParams.teamid);\n\n    // check if we have the required plan\n    if (!$eaBilling.hasRequiredPlan(teamProfile.AccountPlan, 'professional')) {\n\n      // set the active dashboard\n      $scope.activeDashboard = {\n        Id: riWelcomeDashboardId,\n        Name: 'Welcome',\n        Profile: profile,\n        Team: $stateParams.teamid,\n        ContractId: 'RI:Welcome',\n        Active: true,\n        Collection: 'ri'\n      }\n    } else {\n\n      // set the active dashboard\n      $scope.activeDashboard = {\n        Id: riPurchasedImpactDashboardId,\n        Name: 'Purchase Impact Details',\n        Profile: profile,\n        Team: $stateParams.teamid,\n        ContractId: 'RI:PurchaseImpact',\n        Active: true,\n        Collection: 'ri'\n      }\n    };\n  });\n\n});\n","angular.module('azureCostsFeApp').controller('ModalSurveyCtrl', ['$scope', '$modalInstance', function($scope, $modalInstance) {\n\n  $scope.ok = function () {\n    $modalInstance.close();\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n}]);\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('TeamManagementCtrlMixin', function($scope, $eaBackend, $q, $eaSession2) {\n\n  $scope.capitalizeFirstLetter = function(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n  };\n\n  $scope.isUserPseudoUser = function(user) {\n    return (user.LiveId === null || user.LiveId === undefined || user.LiveId.indexOf('PSEUDO:') === 0)\n  };\n\n  $scope.isUserSelf = function(user) {\n    var activeSession = $eaSession2.getSession();\n    return (activeSession.UserId === user.UserId);\n  };\n\n  $scope.isUserAccountOwner = function(user, team) {\n    return (user.UserId === team.AccountOwner);\n  };\n\n  $scope.isUserDelegationAdmin = function(user) {\n    return (user.UserId.indexOf('DEL:') === 0);\n  };\n\n  $scope.hasUserRole = function(user, role) {\n    return (user.Role === role);\n  };\n\n  $scope.deleteUserFromTeam = function(teamid, user, dataToken) {\n    var defer = $q.defer();\n\n    $eaBackend.dataRemoveUserFromTeam(teamid, user.UserId, dataToken).then(function() {\n      defer.resolve()\n    }).catch(function(error) {\n      defer.reject();\n    });\n\n    return defer.promise;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('TeamEditUsersCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openTeamEditUserDialog = function(users, isCspTeam) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/teams/manage/modals/modal_ea_team_edit_users.html\",\n      controller: 'ModalTeamEditUsersCtrl',\n      resolve: {\n        Users: function() { return users; },\n        IsCspTeam: function() { return isCspTeam; }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('TeamEditPermissionsCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openTeamEditPermissionsDialog = function(user, availableSubscriptions) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/teams/manage/modals/modal_ea_team_edit_permissions.html\",\n      controller: 'ModalTeamEditPermissionsCtrl',\n      resolve: {\n        User: function() { return user; },\n        AvailableSubscriptions: function() { return availableSubscriptions; }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('TeamEditAppCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openTeamEditAppDialog = function(app) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/teams/manage/modals/modal_ea_team_edit_app.html\",\n      controller: 'ModalTeamEditAppCtrl',\n      resolve: {\n        App: function() { return app; }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalTeamEditUsersCtrl', function($scope, $modalInstance, $eaSession2, $controller, $eaBackend, $q, Users, IsCspTeam) {\n\n  $.extend(self, $controller('TeamManagementCtrlMixin', {$scope: $scope, $eaBackend: $eaBackend, $q: $q}));\n\n  $scope.title = \"Edit Users\";\n\n  $scope.existingUsers = Users;\n  $scope.newUsers = [];\n  $scope.removedUsers = [];\n\n  $scope.newUser = {\n    Contact: \"\",\n    Role: IsCspTeam ? 'admin' : 'member',\n    WildCardSubscriptions: true\n  };\n\n  $scope.isCspTeam = IsCspTeam;\n\n  $scope.ok = function () {\n    $modalInstance.close({newUsers: $scope.newUsers, removedUsers: $scope.removedUsers});\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n  $scope.addUser = function() {\n    var userModel = {Name: null, Contact: $scope.newUser.Contact, Role: $scope.newUser.Role, Subscriptions: $scope.newUser.WildCardSubscriptions ? { '*': ['*'] } : {} };\n    $scope.existingUsers.push(userModel);\n    $scope.newUsers.push(userModel);\n    $scope.newUser.Contact = \"\";\n    $scope.newUser.Role = IsCspTeam ? 'admin' : 'member';\n    $scope.newUser.WildCardSubscriptions = true;\n  };\n\n  $scope.removeUser = function(userModel) {\n\n    // add the model to the removed ones\n    $scope.removedUsers.push(userModel);\n\n    // try to find the index in existing Users\n    var idx = $scope.existingUsers.indexOf(userModel);\n    if (idx != -1) {\n      $scope.existingUsers.splice(idx, 1);\n    }\n\n    // try to find the index in new Users\n    var idx = $scope.newUsers.indexOf(userModel);\n    if (idx != -1) {\n      $scope.newUsers.splice(idx, 1);\n    }\n  };\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalTeamEditPermissionsCtrl', function($scope, $modalInstance, $controller, $eaBackend, $q, AvailableSubscriptions, User) {\n\n  $.extend(self, $controller('TeamManagementCtrlMixin', {$scope: $scope, $eaBackend: $eaBackend, $q: $q}));\n\n  $scope.title = \"Edit Permissions\";\n  $scope.availableSubscriptions = AvailableSubscriptions;\n\n  $scope.contractCheckBoxChanged = function(contractModel) {\n    // assign the view state to the child objects\n    contractModel.Subscriptions.forEach(function(subscription) {\n      $scope.viewStateModelContract[contractModel.Contract.Enrollment][subscription.Id] = $scope.viewStateModelContract[contractModel.Contract.Enrollment]['contract'];\n    });\n  };\n\n  // the view model contains the state for the view\n  $scope.viewStateModelContract = {};\n\n  // Expand asterisk\n  if (Object.keys(User.Subscriptions).length === 1 && Object.keys(User.Subscriptions)[0] === '*') {\n    $scope.availableSubscriptions.forEach(function(contractModel) {\n      $scope.viewStateModelContract[contractModel.Contract.Enrollment] = { contract: true };\n      contractModel.Subscriptions.forEach(function(subscription) {\n        $scope.viewStateModelContract[contractModel.Contract.Enrollment][subscription.Id] = true;\n      })\n    });\n  }\n\n  // visit the data\n  Object.keys(User.Subscriptions).forEach(function(contractNumber) {\n\n    if (contractNumber !== '*') {\n      var subscritpionSettings = User.Subscriptions[contractNumber];\n      if (subscritpionSettings.length === 1 && subscritpionSettings[0] === '*') {\n        $scope.viewStateModelContract[contractNumber] = {contract: true };\n      } else {\n\n        $scope.viewStateModelContract[contractNumber] = {contract: false };\n\n        subscritpionSettings.forEach(function(subscriptionId) {\n          $scope.viewStateModelContract[contractNumber][subscriptionId] = true;\n        })\n      }\n    }\n  });\n\n  // generate the viewModel\n  $scope.availableSubscriptions.forEach(function(contractModel) {\n\n      // check if we do not have this key\n      if ($scope.viewStateModelContract[contractModel.Contract.Enrollment] === undefined || $scope.viewStateModelContract[contractModel.Contract.Enrollment]['contract'] === undefined) {\n          $scope.viewStateModelContract[contractModel.Contract.Enrollment] = {contract: false };\n\n          contractModel.Subscriptions.forEach(function (subscription) {\n\n            if ($scope.viewStateModelContract[contractModel.Contract.Enrollment][subscription.Id] === undefined) {\n\n                $scope.viewStateModelContract[contractModel.Contract.Enrollment][subscription.Id] = false;\n            }\n          })\n      }\n  });\n\n  // update all childs\n  $scope.availableSubscriptions.forEach(function(contractModel) {\n\n    if ($scope.viewStateModelContract[contractModel.Contract.Enrollment]['contract']) {\n      $scope.contractCheckBoxChanged(contractModel);\n    }\n  });\n\n  $scope.ok = function () {\n\n    // reduce to asterisk\n    var everyEntryIsTrue = true;\n    $scope.availableSubscriptions.forEach(function(contractModel) {\n      if (!$scope.viewStateModelContract[contractModel.Contract.Enrollment]['contract']) {\n        everyEntryIsTrue = false;\n      }\n    });\n\n    // set the *\n    if (everyEntryIsTrue) {\n      User.Subscriptions = {'*': ['*']};\n    } else {\n\n      User.Subscriptions = {};\n\n      Object.keys($scope.viewStateModelContract).forEach(function(contractNumber) {\n\n        if ($scope.viewStateModelContract[contractNumber]['contract']) {\n          User.Subscriptions[contractNumber] = ['*'];\n        } else {\n          User.Subscriptions[contractNumber] = [];\n\n          Object.keys($scope.viewStateModelContract[contractNumber]).forEach(function (subscriptionId) {\n\n            if (subscriptionId !== 'contract' && $scope.viewStateModelContract[contractNumber][subscriptionId]) {\n              User.Subscriptions[contractNumber].push(subscriptionId);\n            }\n          })\n        }\n      });\n    }\n\n    $modalInstance.close(User.Subscriptions);\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalTeamEditAppCtrl', ['$scope', '$modalInstance', '$eaSession2', '$controller', '$eaBackend', '$q', 'App', function($scope, $modalInstance, $eaSession2, $controller, $eaBackend, $q, App) {\n\n  $scope.title = \"Manage Application\";\n\n  $scope.newApp = {\n    Name: \"\",\n    ClientId: \"\",\n    ClientSecret: \"\",\n    Role: \"member\",\n    WildCardSubscriptions: true\n  };\n\n  if (App) {\n    $scope.newApp = App;\n  }\n\n  $scope.ok = function () {\n    $modalInstance.close($scope.newApp);\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n}]);\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaTeamLinkAADCtrl', function ($scope, $location, $stateParams, $eaConfig, $window, $state, $busy, $eaBackend, $eaCurrentSession) {\n\n  function linkAADInternal(instanceType) {\n    // redirect to our backend\n    var redirectUri = $location.absUrl().split('?')[0];\n    $window.location =  ($eaConfig.aadProtocol ? $eaConfig.aadProtocol: 'https') + '://' + $eaConfig.aadHost + '/aad/link/' + instanceType + '?redirect=' + encodeURIComponent(redirectUri);\n  }\n\n  // show the link UI\n  $scope.callback = false;\n\n  // check if we have a tid, if so create the AAD settings and\n  // redirect to edit state\n  // $state.go('authorized.teamsManageAADEdit');\n  if ($stateParams.tid) {\n\n    // show nothing\n    $scope.callback = true;\n\n    // load the team config\n    $busy.setMessage('Saving team settings');\n\n    $busy.during($eaBackend.dataRegisterAADConnection($stateParams.teamid, {TenantId: $stateParams.tid, RequiredGroup: null, DefaultIdentityProvider: false, CloudInstance: $stateParams.scope }, $eaCurrentSession.DataToken).then(function(teamProfile) {\n\n      // navigate to the edit teams section\n      $state.go('authorized.teamsManageAADEdit', { teamid: $stateParams.teamid});\n\n    }).catch(function() {\n      $scope.errorMessage = \"Failed to connect to Azure Active Directory\";\n    }));\n\n  } else {\n\n    // starts the link process to AAD\n    $scope.linkAAD = function () {\n      linkAADInternal('graph');\n    };\n\n    // starts the link process to AAD\n    $scope.linkAADGer = function () {\n      linkAADInternal('graphger');\n    }\n\n  }\n});\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaTeamEditAADCtrl', function ($scope, $location, $stateParams, jwtHelper, $busy, $eaBackend, $eaCurrentSession) {\n  var self = this;\n\n\n  $scope.aadSettings = {\n    TenantId: null,\n    DefaultIdentityProvider: false,\n    RequiredGroup: {\n      GroupName: null,\n      GroupId: null\n    }\n  };\n\n  $scope.graphGroups = [];\n  $scope.errorMessage = null;\n\n  $scope.updateDirectoryConfig = function() {\n\n    // load the team config\n    $busy.setMessage('Saving team settings');\n    $busy.during($eaBackend.dataRegisterAADConnection($stateParams.teamid, $scope.aadSettings, $eaCurrentSession.DataToken).then(function(teamProfile) {\n      // navigate to manage team overview\n      $location.url('/teams/' + $stateParams.teamid + '/manage');\n    }).catch(function() {\n      $scope.errorMessage = \"Failed to save the team settings\";\n    }));\n  };\n\n  $scope.removeLinkAad = function() {\n    var deleteOk = confirm(\"Do you really want to remove the connection to Azure Active Directory\");\n\n    if (deleteOk) {\n      $busy.during($eaBackend.dataDeleteAADConnection($stateParams.teamid, $scope.aadSettings.TenantId, $eaCurrentSession.DataToken).then(function () {\n        // navigate to manage team overview\n        $location.url('/teams/' + $stateParams.teamid + '/manage');\n      }));\n    }\n  };\n\n  // load the team profile\n  return $eaBackend.dataGetAADConnections($stateParams.teamid, $eaCurrentSession.DataToken).then(function(connections) {\n    if (connections && connections.length > 0) {\n      $scope.aadSettings = connections[0];\n    }\n\n    // load the graph groups\n    return $eaBackend.dataGetAADConnectionGroups($stateParams.teamid, $scope.aadSettings.TenantId, $eaCurrentSession.DataToken).then(function(groups) {\n\n      // order the groups by name\n      groups.sort(function(a, b){\n          return a.GroupName.toLowerCase().localeCompare(b.GroupName.toLowerCase());\n      });\n\n      // assign the ordered array\n      $scope.graphGroups = groups;\n\n      $scope.graphGroups.forEach(function(group) {\n        if ($scope.aadSettings.RequiredGroup && $scope.aadSettings.RequiredGroup.GroupId == group.GroupId) {\n          $scope.aadSettings.RequiredGroup = group;\n        }\n      })\n    })\n  });\n});\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaTeamBucketsCtrl', function ($scope, $location, $stateParams, $busy, $eaConfig, $eaBackend, $window, $q, $eaCurrentSession) {\n    var self = this;\n\n    function BucketModel(name) {\n      var selfModel = this;\n\n      selfModel.OrgName = name;\n      selfModel.Name  = name;\n      selfModel.State = 'ok';\n\n      selfModel.getEditorKey = function() {\n        return 'bucketEditor' + selfModel.Id;\n      }\n    }\n\n    $scope.hostProtocol = $location.$$protocol;\n    $scope.hostName = $eaConfig.feHost;\n\n    if ($location.$$port && $location.$$port !== 443) {\n      $scope.hostName = $scope.hostName + ':' + $location.$$port;\n    }\n\n    $scope.teamid = $stateParams.teamid;\n    $scope.buckets = [];\n\n    $scope.newBucket = function() {\n      var bucket = new BucketModel('');\n      bucket.State = 'new';\n      bucket.OrgState = 'new';\n      $scope.buckets.push(bucket);\n    };\n\n    $scope.deleteBucket = function(bucket) {\n      if (bucket.OrgState == 'new') {\n        $scope.buckets.splice($scope.buckets.indexOf(bucket), 1);\n      } else {\n        bucket.OrgState = bucket.State;\n        bucket.State = 'deleted';\n      }\n    };\n\n    $scope.undoBucket = function(bucket) {\n      bucket.State = bucket.OrgState;\n    };\n\n    $scope.commitBucketEdit = function(data, bucket) {\n      if (data !== bucket.Name) {\n\n        // check the string\n        if (!(/^[a-zA-Z0-9]*$/.test(data))) {\n          return \"Invalid name, please use alphanumeric characters only!\";\n        } else {\n          // check if we can use this bucket\n          var defer = $q.defer();\n\n          $eaBackend.dataGetBucket(data).then(function () {\n            defer.resolve(\"Bucket is in use\");\n          }).catch(function () {\n            bucket.Name = data;\n            bucket.State = 'dirty';\n            defer.resolve();\n          });\n\n          return defer.promise;\n        }\n      }\n    };\n\n    $scope.updateBuckets = function() {\n\n      var updatePromisses = [];\n      $scope.buckets.forEach(function(bucket) {\n\n        // check if we need to save the bucket\n        if (bucket.State == 'dirty') {\n\n          if (bucket.OrgState == 'new') {\n            updatePromisses.push($eaBackend.dataCreateTeamBucket($scope.teamid, bucket.Name, $eaCurrentSession.DataToken));\n          } else {\n            updatePromisses.push($eaBackend.dataDeleteTeamBucket($scope.teamid, bucket.OrgName, $eaCurrentSession.DataToken).then(function() {\n              return $eaBackend.dataCreateTeamBucket($scope.teamid, bucket.Name, $eaCurrentSession.DataToken);\n            }));\n          }\n        } else if (bucket.State == 'deleted') {\n          updatePromisses.push($eaBackend.dataDeleteTeamBucket($scope.teamid, bucket.Name, $eaCurrentSession.DataToken));\n        }\n      });\n\n      $busy.setMessage('Updating buckets');\n      $busy.during($q.all(updatePromisses).then(function() {\n        $window.history.back();\n      }))\n    };\n\n\n    // load the team buckets\n    return $eaBackend.dataGetTeamBuckets($scope.teamid, $eaCurrentSession.DataToken).then(function(buckets) {\n      buckets.forEach(function(bucketName) {\n        $scope.buckets.push(new BucketModel(bucketName));\n      })\n    });\n});\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaTeamSettingsCtrl', function ($scope, $stateParams, $busy, $eaCurrentSession, $eaBackend, $window) {\n    var self = this;\n\n  $scope.teamProfileForm = {\n    Name: null,\n    NotifyAdmins: false\n  };\n\n  $scope.updateProfile = function() {\n\n    // convert to profile\n    var teamProfileData = {\n      Name: $scope.teamProfileForm.Name,\n      NotificationNewMember: $scope.teamProfileForm.NotifyAdmins ? ['admin'] : []\n    };\n\n    $busy.during($eaBackend.dataUpdateTeamProfile($stateParams.teamid, teamProfileData, $eaCurrentSession.DataToken).then(function() {\n      $window.history.back();\n    }))\n  };\n\n  // load the team buckets\n  $busy.setMessage(\"Loading team profile\");\n  return $busy.during($eaBackend.dataGetTeamProfile($stateParams.teamid, false, $eaCurrentSession.DataToken).then(function(teamProfile) {\n    $scope.teamProfileForm.Name = teamProfile.Name;\n    $scope.teamProfileForm.NotifyAdmins = teamProfile.NotificationNewMember && teamProfile.NotificationNewMember.length > 0;\n  }));\n\n});\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaBillingUpgradeEditionCtrl', function ($scope, $eaBackend, $toolbar, $busy, $eaSession2, $location, $eaBilling, $controller, $modal, $eaConfig) {\n\n    $.extend(self, $controller('ModalBillingPurchaseCtrlMixin', {$scope: $scope, $modal: $modal }));\n\n    $scope.annualPayment = false;\n    $scope.referrer = null;\n\n    $scope.editions = [\n      {\n        key: \"csp\",\n        name: \"Service Provider\",\n        fsk: null,\n        fsk12: null,\n        price: \"Contact us\",\n        price12: \"Contact us\",\n        features: [\n          'All Azure Plans (incl. EA)',\n          'Includes all Enterprise Features',\n          'Customer Dashboard',\n          'Custom SSL & Domain',\n          'Custom pricing & currency',\n          'Data access via API',\n          'Allows to resell subscriptions'\n        ],\n        retention: 'Unlimited',\n        actionsTitle: 'Contact us',\n        actionsIcon: 'fa-envelope-o'\n      },\n      {\n        key: \"enterprise\",\n        name: \"Enterprise\",\n        fsk: 'acent',\n        fsk12: 'acent12',\n        price: \"$199/month\",\n        price12: \"$1990/year\",\n        features: [\n          'All Azure Plans (incl. EA)',\n          'Includes all Professional Features',\n          'Multi Contract & User Support',\n          'Team & Enterprise Support',\n          'Subscription Based Permissions',\n          'Branding & Customizable Widgets',\n          'Azure Active Directory Support',\n          'Data Access via RESTful API'\n        ],\n        retention: 'Unlimited',\n        actionsTitle: 'Buy now',\n        actionsIcon: 'fa-shopping-cart'\n      },\n      {\n        key: \"professional\",\n        name: \"Professional\",\n        fsk: 'acpro',\n        fsk12: 'acpro12',\n        price: \"$79/month\",\n        price12: \"$790/year\",\n        features: [\n          'All Azure Plans (incl. EA)',\n          'Includes all Startup Features',\n          'Spending & Cost Alerts',\n          'Instant Data Sync',\n          'Smart Compare',\n          'Annual Financial Reports',\n          'Customer Sub Domain',\n          'Unlimited amount of spendings'\n        ],\n        retention: '24 Month',\n        actionsTitle: 'Buy now',\n        actionsIcon: 'fa-shopping-cart'\n      },\n      {\n        key: \"startup\",\n        fsk: 'acstu',\n        fsk12: 'acstu12',\n        name: \"Startup\",\n        price: \"$29/month\",\n        price12: \"$290/year\",\n        features: [\n          'All Pay as you go / Rate Plans',\n          'Includes all Basic Features',\n          'Advanced Data Grouping',\n          'Mail Reports',\n          'Charts in Mail Reports',\n          'Trend Analytics',\n          'Smart Resource Tagging',\n          'Unlimited amount of spendings'\n        ],\n        retention: '12 Month',\n        actionsTitle: 'Buy now',\n        actionsIcon: 'fa-shopping-cart'\n      },\n      {\n        key: \"basic\",\n        name: \"Basic\",\n        fsk: null,\n        fsk12: null,\n        price: \"free forever\",\n        price12: \"free forever\",\n        features: [\n          'All Azure Plans (incl. EA)',\n          'Spending Stats',\n          'Cost Analytics',\n          'Automatic Data Import',\n          'Spending Dashboards',\n          'Advanced Spending Filters',\n          'Spending Breakdown',\n          'Unlimited amount of spendings'\n        ],\n        retention: '2 Month',\n        actionsTitle: null,\n        actionsIcon: null\n      }\n    ];\n\n    // adapt the pricing for the german cloud\n    if ($eaConfig.feHost === 'azure-costs.de' || $eaConfig.feHost === 'costs-test-ger.applimit.de' || $eaConfig.feHost === 'ger.atea.services:9000') {\n      // enterprise\n      $scope.editions[1].fsk = 'acentde';\n      $scope.editions[1].fsk12 = 'acent12de';\n      $scope.editions[1].price = '199€/month';\n      $scope.editions[1].price12 = '1990€/month';\n\n      // professional\n      $scope.editions[2].fsk = 'acprode';\n      $scope.editions[2].fsk12 = 'acpro12de';\n      $scope.editions[2].price = '79€/month';\n      $scope.editions[2].price12 = '790€/month';\n\n      // startup\n      $scope.editions[3].fsk = 'acstude';\n      $scope.editions[3].fsk12 = 'acstu12de';\n      $scope.editions[3].price = '29€/month';\n      $scope.editions[3].price12 = '290€/month';\n    }\n\n\n    function setCurrentPlan(billing) {\n      // define the current plan\n      if ($eaBilling.isInTrial(billing)) {\n        $scope.currentPlan = 'basic';\n        $scope.currentPlanManagement = null;\n      } else {\n        $scope.currentPlan = billing.CurrentPlan;\n        $scope.currentPlanManagement = billing.Details;\n      }\n    }\n\n    $busy.during($eaSession2.lazy().then(function(session) {\n      return $eaBilling.loadBillingInformation(session).then(function(billing) {\n\n          // set the referrer\n          $scope.referrer = session.UserId;\n\n          // check if we have a billing period\n          if (billing.Period && billing.Period === 12) {\n            $scope.annualPayment = true;\n          } else {\n            $scope.annualPayment = false;\n          }\n\n          // set the current billing information\n          setCurrentPlan(billing);\n\n          // offer an upgrade option\n          $scope.upgradePlan = function(plan) {\n              if (plan === 'csp') {\n                return;\n              } else {\n\n                $scope.openPurchaseConfirmationDialog(plan, billing.InvoiceAddress).then(function (updatedInvoiceInformation) {\n                  $busy.during($eaBackend.dataUpdateBillingInformation(updatedInvoiceInformation, session.DataToken).then(function () {\n                    return $eaBilling.purchase(plan, session.DataToken).then(function () {\n                      return $eaBilling.loadBillingInformation(session).then(function (billingInfo) {\n\n                        // set the current plan\n                        setCurrentPlan(billingInfo);\n\n                        // override the billing info\n                        billing = billingInfo;\n                      })\n                    })\n                  })).catch(function () {\n                    alert(\"Something went wrong, we was unable to process your purchase request! Please try again.\");\n                  })\n                })\n              }\n          };\n\n          $scope.upgradeActionAllowed = function(plan) {\n            return $scope.referrer && $eaBilling.isPlanHigherThanPlan(plan, $scope.currentPlan);\n          };\n      })\n    }));\n\n    // Add Back Entry\n    $toolbar.addItem('billing.upgradeEditions.Back', 'Back to Billing', 'fa-chevron-left', null, true, '/billing');\n\n  });\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CcAddContractCtrl', function ($scope, $state, $stateParams, $window, $ccDemoModeService, $controller, $modal, $eaCurrentSession) {\n  $.extend(self, $controller('ModalMessageBoxCtrlMixin', {$scope: $scope, $modal: $modal }));\n\n  $scope.addAzureContract = function()\n  {\n    $state.go('authorized.reportAdd', { teamid: $stateParams.teamid});\n  };\n\n  $scope.addAwsContract = function()\n  {\n    $state.go('authorized.teams.contracts.add-aws.prepare', { teamid: $stateParams.teamid});\n  };\n\n  $scope.addGoogleContract = function()\n  {\n    $state.go('authorized.teams.contracts.add-gcp.prepare', { teamid: $stateParams.teamid});\n  };\n\n  $scope.startDemoMode = function()\n  {\n    $ccDemoModeService.enableDemoMode($eaCurrentSession);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CcAddAwsContractCtrl', function ($scope, $rootScope, $state) {\n\n  function handleStep(state) {\n    // define the step\n    $scope.currentStep = 'step01';\n\n    // check the correct one\n    if (state.name == 'authorized.teams.contracts.add-aws.connect') {\n      $scope.currentStep = 'step02';\n    } else if (state.name =='authorized.teams.contracts.add-aws.finish') {\n      $scope.currentStep = 'step03';\n    }\n  }\n\n  // handle the state\n  handleStep($state.current);\n\n  // handle state changes to adapt the control\n  $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams)\n  {\n    handleStep(toState);\n  });\n\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CcAddAwsContractPrepareCtrl', function ($scope, $state) {\n\n  $scope.next = function()\n  {\n    $state.go('authorized.teams.contracts.add-aws.connect');\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CcAddAwsContractConnectCtrl', function ($scope, $eaBackend, $busy, $stateParams, $eaCurrentSession, $state) {\n\n  $scope.form = {\n    roleArn: undefined,\n    externalId: undefined,\n    bucket: undefined,\n    prefix: undefined,\n    reportname: undefined\n  };\n\n  var awsData = sessionStorage.getItem('awsdata');\n  if (awsData) {\n    $scope.form = JSON.parse(awsData);\n  }\n\n  $scope.error = undefined;\n\n  $scope.next = function()\n  {\n    if(location.href.indexOf('localhost') !== -1) {\n      sessionStorage.setItem(\"awsdata\", JSON.stringify($scope.form));\n    }\n\n    $busy.setMessage(\"Verifying connection to AWS...\");\n    $busy.during($eaBackend.dataAwsVerifyConnection($stateParams.teamid, $scope.form.roleArn, $scope.form.externalId, $scope.form.bucket, $eaCurrentSession.DataToken)).then(function() {\n\n      $busy.setMessage(\"Registering Contract...\");\n      return $busy.during($eaBackend.dataAwsRegisterContract($stateParams.teamid, $scope.form.roleArn, $scope.form.externalId, $scope.form.bucket, $scope.form.prefix, $scope.form.reportname, $eaCurrentSession.DataToken)).then(function(contractId) {\n\n        // show the finish page\n        $state.go('authorized.teams.contracts.add-aws.finish', {teamid: $stateParams.teamid, cid: contractId});\n      })\n    }).catch(function(error) {\n      $scope.error = error && error.data ? error.data : 'Unknown error';\n    })\n  }\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('CcAddAwsContractDashboardCtrl', function ($scope, $stateParams) {\n  $scope.teamid = $stateParams.teamid;\n  $scope.cid= $stateParams.cid;\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CcAddGcpContractCtrl', function ($scope, $rootScope, $state) {\n\n  function handleStep(state) {\n    // define the step\n    $scope.currentStep = 'step01';\n\n    // check the correct one\n    if (state.name === 'authorized.teams.contracts.add-gcp.connect') {\n      $scope.currentStep = 'step02';\n    } else if (state.name === 'authorized.teams.contracts.add-gcp.finish') {\n      $scope.currentStep = 'step03';\n    }\n  }\n\n  // handle the state\n  handleStep($state.current);\n\n  // handle state changes to adapt the control\n  $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams)\n  {\n    handleStep(toState);\n  });\n\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CcAddGcpContractPrepareCtrl', function ($scope, $state) {\n\n  $scope.next = function()\n  {\n    $state.go('authorized.teams.contracts.add-gcp.connect');\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CcAddGcpContractConnectCtrl', function ($scope, $eaBackend, $busy, $stateParams, $eaCurrentSession, $state) {\n\n  $scope.form = {\n    accountkey: undefined,\n    dataset: undefined\n  };\n\n  var gcpData = sessionStorage.getItem('gcpdata');\n  if (gcpData) {\n    $scope.form = JSON.parse(gcpData);\n  }\n\n  $scope.error = undefined;\n\n  $scope.next = function()\n  {\n    if(location.href.indexOf('localhost') !== -1) {\n      sessionStorage.setItem('gcpdata', JSON.stringify($scope.form));\n    }\n\n    $busy.setMessage('Verifying connection to GCP...');\n    $busy.during($eaBackend.dataGcpVerifyConnection($stateParams.teamid, $scope.form.accountkey, $scope.form.dataset, $eaCurrentSession.DataToken)).then(function() {\n\n      $scope.error = undefined;\n\n      $busy.setMessage('Registering Contract...');\n      return $busy.during($eaBackend.dataGcpRegisterContract($stateParams.teamid, $scope.form.accountkey, $scope.form.dataset, $eaCurrentSession.DataToken)).then(function(contractId) {\n\n        // show the finish page\n        $state.go('authorized.teams.contracts.add-gcp.finish', {teamid: $stateParams.teamid, cid: contractId});\n      });\n    }).catch(function(error) {\n      $scope.error = error && error.data ? error.data : 'Unknown error';\n    });\n  };\n});\n","'use strict';\n\n/**\n * @ngdoc function\n * @name azureCostsFeApp.controller:MainCtrl\n * @description\n * # MainCtrl\n * Controller of the azureCostsFeApp\n */\nangular.module('azureCostsFeApp').controller('CcAddGcpContractDashboardCtrl', function ($scope, $stateParams) {\n  $scope.teamid = $stateParams.teamid;\n  $scope.cid= $stateParams.cid;\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaBillingCtrl', function ($scope, $eaBackend, $eaUserProfile, $toolbar, $busy, $eaSession2, $location, moment, $eaBilling, $controller, $modal, $acTimelineGenerator, $state, $eaConfig) {\n\n    $.extend(self, $controller('ModalBillingAddressCtrlMixin', {$scope: $scope, $modal: $modal }));\n\n    $busy.setMessage(\"Loading Billing-Data\");\n    $busy.during($eaSession2.lazy().then(function(session) {\n\n      // load the profile\n      return $eaUserProfile.load(session.DataToken, true).then(function(profile) {\n        return $eaBilling.loadBillingInformation(session).then(function (billing) {\n\n          $scope.SvpMode = (angular.isObject($eaConfig.svp) && !$eaConfig.features.fastspring);\n\n          // generate the contracts list\n          var contracts = [];\n          profile.Teams.forEach(function(team) {\n\n            // check if we are account owner\n            if ($eaBilling.isAccountOwner(session.UserId, team)) {\n\n              team.Contracts.forEach(function(contract) {\n                contracts.push(contract);\n              })\n            }\n          });\n\n          $scope.BillingInformation = {\n            Plan: {\n              Label: billing.CurrentPlan,\n              Edition: $eaBilling.getDisplayTextForPlan(billing.CurrentPlan) + \" Edition\",\n              RetentionPeriod: $eaBilling.calculateRetentionPeriod(billing),\n              ChargingModel: $eaBilling.isInTrial(billing) ? \"Trial\" : billing.CurrentPlan === 'basic' ? \"Free Plan\" : \"Paid Plan\"\n            },\n            Payment: {\n              Method: billing.Reference ? \"fastspring\" : \"invoice\",\n              NextPaymentDue: billing.NextPaymentDue ? new Date(billing.NextPaymentDue) : null,\n              NextPaymentAmount: $eaBilling.calculateCurrentPlanPrice(billing)\n            },\n            Extra: {\n              Info: billing.InvoiceAddress,\n              Contracts: contracts.sort()\n            },\n            Account: {\n              Contact: profile.Contact,\n              Id: profile.UserId\n            }\n          };\n\n          // calculate the amount string\n          $scope.BillingInformation.Payment.NextPaymentAmountString = '$' + $scope.BillingInformation.Payment.NextPaymentAmount.toFixed(2);\n          if (angular.isObject($eaConfig.svp) && $eaConfig.features.fastspring && ($eaConfig.feHost === 'azure-costs.de' || $eaConfig.feHost === 'costs-test-ger.applimit.de')) {\n            $scope.BillingInformation.Payment.NextPaymentAmountString = $scope.BillingInformation.Payment.NextPaymentAmount.toFixed(2) + '€';\n          }\n\n          $scope.Teams = profile.Teams.filter(function(item) {\n            return (item.Id !== 'personal');\n          }).map(function(item) {\n            return {\n              Id: item.Id,\n              Edition: $eaBilling.getDisplayTextForPlan(item.AccountPlan) + \" Edition\"\n            };\n          }).sort();\n\n          $scope.BillingStatus = {\n            AllowedToStartTrial: !$eaBilling.hasEverStartedTrial(billing),\n            AllowedToChangePlan: true,\n            AllowedToChangeExtraInfo: true\n          };\n\n          // handle the next payment due in case we are doing fastspring\n          if ($scope.BillingInformation.Payment.Method === 'fastspring' && $scope.BillingInformation.Payment.NextPaymentDue) {\n            var now = new Date();\n\n            // set the right date\n            while ($scope.BillingInformation.Payment.NextPaymentDue.getTime() < now.getTime()) {\n              $scope.BillingInformation.Payment.NextPaymentDue = $acTimelineGenerator.addMonth($scope.BillingInformation.Payment.NextPaymentDue);\n            }\n          }\n\n          $scope.updateBillingInformation = function () {\n            $scope.openUpdateBillingAddressDialog($scope.BillingInformation.Extra.Info).then(function (updatedInformation) {\n              $busy.during($eaBackend.dataUpdateBillingInformation(updatedInformation, session.DataToken).then(function () {\n                $scope.BillingInformation.Extra.Info = updatedInformation;\n              }));\n            })\n          };\n\n          $scope.navigateToBillingPage = function() {\n            if ($scope.SvpMode) {\n              $state.go('authorized.profileBillingServiceProvider')\n            } else {\n              $state.go('authorized.profileBillingUpgradeEdition')\n            }\n          };\n\n          // Add Back Entry\n          $toolbar.addItem('billing.Back', 'Back to Reports', 'fa-chevron-left', null, true, '/signin');\n\n        })\n      })\n    }));\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaBillingStartTrialCtrl', [\n  '$scope', '$eaBackend', '$eaUserProfile', '$toolbar', '$busy', '$eaSession2', '$location', function ($scope, $eaBackend, $eaUserProfile, $toolbar, $busy, $eaSession2, $location) {\n\n    $eaSession2.lazy().then(function(session) {\n\n      return $eaUserProfile.load(session.DataToken).then(function(profile) {\n\n        // start the trial\n        $eaBackend.dataStartTrial('enterprise', session.DataToken).then(function() {\n\n            // sign in with our current url\n            $eaSession2.destroySession();\n\n            // sign in and comeback\n            var path = '/sso?idp=' + session.IdentityProvider + '&redirect=' + encodeURIComponent('/app/signin');\n            $location.url(path);\n\n        }).catch(function(error) {\n\n        })\n      })\n    });\n  }]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaBillingServiceProviderCtrl', function ($scope, $eaBackend, $eaConfig, $toolbar) {\n\n    $scope.contact = $eaConfig.svp && $eaConfig.svp.contact ? $eaConfig.svp.contact : 'help@azure-costs.com';\n\n    // Add Back Entry\n    $toolbar.addItem('billing.upgradeEditions.Back', 'Back to Billing', 'fa-chevron-left', null, true, '/billing');\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalBillingPurchaseCtrl',\n['$scope', '$modalInstance', '$eaBilling', 'Plan', 'BillingAddress', function($scope, $modalInstance, $eaBilling, Plan, BillingAddress) {\n\n  $scope.CurrentPlanDisplayText = $eaBilling.getDisplayTextForPlan(Plan);\n  $scope.CurrentPlanPrice       = $eaBilling.calculateCurrentPlanPrice(Plan) * 12;\n  $scope.BillingAddress         = BillingAddress;\n\n  $scope.ok = function () {\n    $modalInstance.close($scope.BillingAddress);\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n}]);\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalBillingPurchaseCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openPurchaseConfirmationDialog = function(plan, billingAddress) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/billing/modals/ea-modal-billing-purchase.html\",\n      controller: 'ModalBillingPurchaseCtrl',\n      resolve: {\n        Plan: function() { return plan; },\n        BillingAddress: function() { return billingAddress; }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalBillingAddressCtrl',\n  ['$scope', '$modalInstance', 'BillingAddress', function($scope, $modalInstance, BillingAddress) {\n\n    $scope.BillingAddress = BillingAddress;\n\n    $scope.ok = function () {\n      $modalInstance.close($scope.BillingAddress);\n    };\n\n    $scope.cancel = function () {\n      $modalInstance.dismiss(\"cancel\")\n    };\n\n  }]);\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalBillingAddressCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openUpdateBillingAddressDialog = function(billingAddress) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/billing/modals/ea-modal-billing-address.html\",\n      controller: 'ModalBillingAddressCtrl',\n      resolve: {\n        BillingAddress: function() { return billingAddress; }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaSSOCallbackCtrl', function ($scope, $controller, $location, $eaBucket, $eaBackend, $eaBackendDataModeSelector, $eaSession2, $state, $window, $eaConfig) {\n  var self = this;\n\n  // inject mixins\n  $.extend(self, $controller('SessionHelperCtrlMixin', {$scope: $scope, $eaBackendDataModeSelector: $eaBackendDataModeSelector, $eaSession2: $eaSession2, $state: $state }));\n\n  function isValidHttpUrl(string) {\n    var url;\n\n    try {\n      url = new URL(string);\n    } catch (_) {\n      return false;\n    }\n\n    return url.protocol === 'http:' || url.protocol === 'https:';\n  }\n\n  if ($location.search().server_error) {\n    $scope.message = 'Auth-Error: ' + $location.search().server_error;\n    $scope.showRefreshSessionButton = true;\n  } else if ($location.search().access_token) {\n    $scope.message = 'Processing identity...';\n    $scope.showRefreshSessionButton = false;\n\n    // get the stuff\n    var accessToken = $location.search().access_token;\n    var state = $location.search().state;\n\n    // define the correct state\n    var checkState = state ? state : $location.absUrl();\n\n    // check if we have actAs\n    var isActAs = $location.absUrl() && ($location.absUrl().indexOf('actas=true') !== -1);\n\n    // check if we have a customer domain and redirect first to the customer domain callback\n    // *.azure-costs.com\n    // costs.acme.com\n    if (checkState.indexOf('.' + $eaConfig.feHost) !== -1 && !$location.search().final ) {\n        // cut of all parameters\n        var splitPoint = checkState.indexOf('?') === -1 ? checkState.length : checkState.indexOf('?');\n        checkState = checkState.substring(0, splitPoint).split('/');\n        state = state ? state : '';\n        $window.location = checkState[0] + '//' + checkState[2] + '/app/sso/callback?final=1&access_token=' + accessToken + '&state=' + state + '&actas=' + (isActAs ? 'true' : 'false');\n        return;\n    }\n\n\n    // Load the profile for this user (no return becuase we knoe the user exists)\n    $eaBackend.dataGetProfile(accessToken).then(function (profile) {\n\n      // Touch the profile as used\n      return $eaBackend.dataPostProfileTouch(accessToken).then(function (touchResult) {\n\n        // Generate the login session\n        return $eaSession2.generateSession(profile.UserId, profile.FirstName, profile.LastName, profile.Contact, profile.Avatar, touchResult.LoginCount, touchResult.SurveyAtLogin, profile.Type, profile.LiveId, null, accessToken, (touchResult.LoginCount <= 1), isActAs).then(function () {\n\n          // Redirect to final location\n          if (state) {\n            // verify if it's only a url\n            var decodedUri = decodeURIComponent(state);\n            if (!isValidHttpUrl(decodedUri)) {\n              $location.url('/signin');\n            } else {\n              $window.location = decodedUri;\n            }\n          } else {\n            $location.url('/signin');\n          }\n        });\n      });\n    }).catch(function () {\n      $scope.message = 'Something went wrong, please try again';\n      $scope.showRefreshSessionButton = true;\n    });\n  } else {\n    $scope.message = 'Something went wrong, please retry';\n    $scope.showRefreshSessionButton = true;\n  }\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspInitCtrl', function ($scope, $eaCspService, $eaCurrentSession, $state, $busy) {\n\n  $scope.enrollmentMode = false;\n  $scope.Profiles = [];\n  $scope.OtherProfiles = [];\n\n  $scope.enroll = function() {\n    var callbackUrl = $state.href('authorized.cspinit', {}, {absolute: true});\n    $busy.during($eaCspService.enroll($eaCurrentSession, callbackUrl));\n  };\n\n  // load the csp profile\n  return $eaCspService.loadProfiles($eaCurrentSession).then(function(cspProfiles) {\n\n    // if we have no profile go to the enrollment page\n    if(cspProfiles == null ||cspProfiles.length === 0) {\n      $scope.enrollmentMode = true;\n    // if we have just one profile visit it\n    } else if (cspProfiles && cspProfiles.length === 1) {\n      // visit the profile\n      $state.go('authorized.csp.accounts', { resellerId: cspProfiles[0].Id})\n    } else {\n      // allow to select\n      $scope.Profiles = cspProfiles;\n    }\n  })\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspCtrl', function ($scope, $eaCspService, $eaCurrentSession, $stateParams) {\n\n  // the scope\n  $scope.Profile = undefined;\n\n  // load the csp profile\n  return $eaCspService.loadProfileById($stateParams.resellerId, $eaCurrentSession).then(function(cspProfile) {\n\n    // set the profile\n    $scope.Profile = cspProfile;\n  })\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAccountsCtrl', function ($scope, $state, $eaCspService, $eaCurrentSession, $busy, $q, $controller, $modal, $toolbar, $eaBackendDataModeSelector, $eaSession2, $eaWidgetDashboardManager, ngToast, $eaBackend, $eaBackendAzureV2, $timeout, $window, $stateParams, $acTimelineGenerator, $eaWidgetRepository) {\n\n  $.extend(self, $controller('SessionHelperCtrlMixin', {$scope: $scope, $eaBackendDataModeSelector: $eaBackendDataModeSelector, $eaSession2: $eaSession2, $state: $state }));\n  $.extend(self, $controller('ModalObjectPickerCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('CspUpdateT1AccountCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspUpdateEAAccountCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspUpdateAWSAccountCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspChooseCustomerCtrlMixin', {$scope: $scope, $modal: $modal, $controller: $controller, $q: $q}));\n  $.extend(self, $controller('CspDefineResellerMarginCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspDefineResellerFilterCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspDownloadPriceSheetCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspRegisterCustomerCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspRegisterCustomerCostMgntCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspDefineResellerFeaturesCtrlMixin', {$scope: $scope, $modal: $modal}));\n\n  $scope.ShowUI = false;\n\n  $scope.dashboards = [];\n  $scope.dashboardsMap = {};\n  $scope.dashboardEditMode = false;\n  $scope.dashboardsOrdered = [];\n  $scope.activeDashboard = null;\n  $scope.selectDropDownData = { selected: null};\n\n  $scope.dataToken = $eaCurrentSession.DataToken;\n\n  // set default to v2\n  if (!$stateParams.version) {\n    $stateParams.version = 'v2';\n  }\n\n  $scope.toggelEditMode = function() {\n    $scope.dashboardEditMode = !$scope.dashboardEditMode;\n  };\n\n  // update the navbar menu\n  $scope.updateControllerNavBarMenu = function() {\n\n    var elementsToRemove = ['csp.analytics', 'csp.importCustomers', 'csp.generalSettings.triggerSync', 'csp.generalSettings.openSettings', 'csp.switchToGsi'];\n\n    elementsToRemove.forEach(function(elementToRemove) {\n\n      // ensure the version switcher does not exists\n      var versionSwitcherItemIndex = -1;\n      for(var itemsIndex = 0; itemsIndex < $toolbar.items.length; itemsIndex++) {\n        if ($toolbar.items[itemsIndex].tag === elementToRemove) {\n          versionSwitcherItemIndex = itemsIndex;\n        }\n      }\n\n      if (versionSwitcherItemIndex !== -1) {\n        $toolbar.items.splice(versionSwitcherItemIndex, 1);\n      }\n    });\n\n    // Add gsi button\n    if ($scope.activeDashboard && $scope.activeDashboard.Id !== 'csp.welcome') {\n      $toolbar.addItem('csp.switchToGsi', 'System Integrator Portal', 'fa-globe', 'Visit the portal for Gloabl System Integrators', true, function () {\n        $state.go('authorized.csp.gsi', {resellerId: $stateParams.resellerId});\n      });\n    };\n\n    // Add Contract\n    $toolbar.addItem('csp.addAccount', 'Add', 'fa-plus', \"Adds an additional CSP account\", true, $scope.addAccount);\n\n    // Add Contract\n    if ($scope.activeDashboard && $scope.activeDashboard.AccountModel && $scope.activeDashboard.AccountModel.TierLevel !== 'EA' && $scope.activeDashboard.AccountModel.TierLevel !== 'AWS' && $scope.activeDashboard.AccountModel.SyncCustomers === true) {\n      $toolbar.addItem('csp.importCustomers', 'Import', 'fa-exchange', \"Imports not activated customer\", true, $scope.syncCustomers);\n    } else if ($scope.activeDashboard && $scope.activeDashboard.AccountModel && $scope.activeDashboard.AccountModel.TierLevel !== 'EA' && $scope.activeDashboard.AccountModel.TierLevel !== 'AWS' && $scope.activeDashboard.AccountModel.TierLevel !== 'T1N') {\n      $toolbar.addItem('csp.importCustomers', 'Register Customer', 'fa-user-plus', \"Registers a new customer\", true, $scope.registerCustomers);\n    }\n\n    // Only add the settings dialog when not T1N\n    if ($scope.activeDashboard && $scope.activeDashboard.AccountModel && $scope.activeDashboard.AccountModel.TierLevel !== 'T1N') {\n\n      // Open the Settings dialog\n      $toolbar.addItem('csp.generalSettings', 'Settings', 'fa-cogs', null, true, null);\n\n      // Open the contract settings dialog\n      if ($scope.activeDashboard && $scope.activeDashboard.Id !== 'csp.welcome') {\n        $toolbar.addItem('csp.generalSettings.openSettings', 'General', 'fa-cog', \"Allows to edit the CSP account\", true, $scope.openEditCspAccountDialog, null, 'csp.generalSettings');\n      }\n\n      // Open the reseller management\n      $toolbar.addItem('csp.generalSeetings.openResellermanagement', 'Manage Resellers', 'fa-building-o', 'Allows to manage resellers', true, $scope.openResellers, null, 'csp.generalSettings');\n\n      // Open the virtual meters\n      $toolbar.addItem('csp.generalSeetings.openVirtualMeters', 'Virtual Meters', 'fa-id-card', 'Allows to manage virtual meters', true, $scope.openVirtualMeters, null, 'csp.generalSettings');\n    }\n\n    // Currently only available for EA & AWS contracts\n    if ($scope.activeDashboard && $scope.activeDashboard.AccountModel && ($scope.activeDashboard.AccountModel.TierLevel === 'EA' || $scope.activeDashboard.AccountModel.TierLevel === 'AWS')) {\n\n      // Open the customer segmentation meters\n      $toolbar.addItem('csp.generalSeetings.openCustomerSegmentation', 'Segmentation', 'fa-user-md', 'Allows to manage customer segements', true, $scope.openCustomerSegmentation, null, 'csp.generalSettings');\n\n      // Open the contract settings dialog\n      $toolbar.addItem('csp.generalSettings.triggerSync', 'Trigger Sync', 'fa-random', \"Start synchronization with the Microsoft EA portal\", true, $scope.startMonthSync, null, 'csp.generalSettings');\n    } else if ($scope.activeDashboard && $scope.activeDashboard.AccountModel && $scope.activeDashboard.AccountModel.TierLevel === 'T1') {\n      // Open the contract settings dialog\n      $toolbar.addItem('csp.generalSettings.triggerSync', 'Sync Azure Plan', 'fa-random', \"Start synchronization for all Azure Plan Customers\", true, $scope.startMonthSync, null, 'csp.generalSettings');\n    }\n\n    // Open Uplift Categoris\n    $toolbar.addItem('csp.generalSeetings.openUpliftCategories', 'Uplift Categories', 'fa-credit-card', 'Allows to manage uplift categories', true, $scope.openUpliftCategories, null, 'csp.generalSettings');\n\n    // Currently only available for EA contracts\n    if ($scope.activeDashboard && $scope.activeDashboard.AccountModel && $scope.activeDashboard.AccountModel.TierLevel === 'EA') {\n\n      // Open the Analytics Sub-Menu\n      $toolbar.addItem('csp.analytics', 'Analytics', 'fa-lightbulb-o', null, true, null);\n\n      $toolbar.addItem('csp.analytics.pricecomparisions', 'Price Sheet', 'fa-money', \"Allows to download the price comparision sheet\", true, $scope.openDownloadPriceSheetDialog, null, 'csp.analytics');\n    }\n\n    // Reload operation\n    $toolbar.addItem('csp.performReload', 'Reload', 'fa-refresh', \"Current data will be refreshed\", true, $scope.reloadData);\n  };\n\n  $scope.startAddCustomWidget = function() {\n    $eaWidgetRepository.showRepository();\n  };\n\n  $scope.selectDashboardFromDropDown = function() {\n    $scope.selectDashboard($scope.selectDropDownData.selected);\n  };\n\n  $scope.selectDashboard = function(dashboard) {\n\n    // deactivate teh old one\n    if ($scope.activeDashboard !== null) {\n      $scope.activeDashboard.Active = false;\n    }\n\n    // handel billing cycle\n    if (dashboard.AccountModel && $eaBackendDataModeSelector.isBillingCycleEnabled())\n    {\n      $eaBackendDataModeSelector.enableBillingCycle(true, dashboard.AccountModel.BillingDay);\n    }\n\n    // activate the new dashboard\n    $scope.activeDashboard = dashboard;\n    $scope.activeDashboard.Active = true;\n    $scope.selectDropDownData.selected = $scope.activeDashboard;\n\n    // update the url\n    $state.transitionTo('authorized.csp.accounts', {resellerId: $stateParams.resellerId, active: dashboard.Id, version: $stateParams.version ? $stateParams.version: 'v1'}, {\n      location: true,\n      inherit: true,\n      relative: $state.$current,\n      notify: false\n    });\n\n    // update navbar\n    $scope.updateControllerNavBarMenu();\n  };\n\n  $scope.refreshScreen = function() {\n    $state.go($state.current.name, { initial: null }, {reload: true});\n  };\n\n  $scope.startMonthSync = function() {\n\n    // preselect the current month\n    var currentMonth = (new Date()).currentMonthDefinition();\n\n    // description\n    var description = 'Please select all months you want to re-sync. Azure Costs will override all ' +\n      'existing information for this month and downloads the spending data freshly ' +\n      'from Microsoft:';\n\n    // report timeline\n    var reportStrings = $acTimelineGenerator.createMonthList(24, $acTimelineGenerator.addMonth(new Date(), -23));\n\n    // show the month selector\n    return $scope.openObjectPickerDialog('Select month to sync', description, 'fa-calendar-o', undefined, undefined, reportStrings.sortSimple().reverse(), [currentMonth], false).then(function (selectedMonthes) {\n\n      // notify the user\n      ngToast.create({\n        className: 'success',\n        content: '<strong>Great!</strong> A new sync for your contract <strong>' + $scope.activeDashboard.Name + '</strong> is started. This can take a couple seconds or minutes. If you don\\'t see new reports after more than 15 minutes give us a note.'\n      });\n\n      // schedule the syncs\n      selectedMonthes.forEach(function (month) {\n\n        // start the sync\n        $eaBackendAzureV2.dataCspMonthSyncReportsV2($scope.activeDashboard.Team, $scope.activeDashboard.AccountModel.AccountId, month, $eaCurrentSession.DataToken).catch(function (e) {\n\n          // notify regarding error\n          ngToast.create({\n            className: 'danger',\n            content: '<strong>Error!</strong> Failed to process the synchronisation request of month <strong>' + month + '</strong> - Error: ' + e\n          });\n\n        });\n      })\n    });\n  };\n\n  $scope.reloadData = function () {\n    if ($scope.activeDashboard && $scope.activeDashboard.Id === 'csp.welcome') {\n      $scope.refreshScreen();\n    } else if ($scope.activeDashboard) {\n      $eaWidgetDashboardManager.reload($scope.activeDashboard.Id);\n    }\n  };\n\n  // allow to reload the data\n  function loadDashboards(cspTeamProfile) {\n\n    // load the different accounts\n    return $eaCspService.loadAccounts(cspTeamProfile, $eaCurrentSession).then(function(cspAccounts) {\n\n      // check if we have no accounts\n      if (!cspAccounts || cspAccounts.length === 0) {\n\n        // generate the collection name\n        var collectionName = ($stateParams.version && $stateParams.version == 'v2') ? 'csp.v2' : 'csp';\n\n        // register our welcome dashboard\n        $scope.dashboards.push({\n          Id: 'csp.welcome',\n          Name: 'Welcome',\n          Profile: cspTeamProfile,\n          Team: cspTeamProfile.Id,\n          ContractId: 'CSP:Welcome',\n          Active: false,\n          Collection: collectionName\n        });\n\n        // Action: Add account\n        $eaWidgetDashboardManager.onDashboardFunction('csp.welcome', 'func:2A4B35B3-63A1-4B36-A5A2-FE1510CDFA16', function (args) {\n          $scope.addAccount();\n          $eaWidgetDashboardManager.finishDashboardFunction('csp.welcome', args, null, null);\n        });\n\n        $scope.activeDashboard = $scope.dashboards[0];\n        $scope.activeDashboard.Active = true;\n      } else {\n\n        // generate the dasboard items\n        cspAccounts.forEach(function (account) {\n\n          // define the collection prefix\n          var collectionPrefix = 'csp';\n          if (account.TierLevel === 'T2') {\n            collectionPrefix = collectionPrefix + '.t2';\n          }\n\n          // generate the collection name\n          var collectionName = collectionPrefix + (($stateParams.version && $stateParams.version == 'v2') ? '.v2' : '');\n          if (account.TierLevel === 'EA' || account.TierLevel === 'AWS') {\n            collectionName = 'csp.ea.v2';\n          }\n\n          // define the dashbaord id\n          var dashboardId = account.AccountId;\n\n          // create a dashboard\n          var dashboardItem = {\n            Id: dashboardId,\n            Name: account.Name && account.Name.length > 0 ? account.Name : account.Domain,\n            AccountModel: account,\n            Profile: cspTeamProfile,\n            Team: cspTeamProfile.Id,\n            ContractId: 'CSP:' + account.AccountId,\n            Active: false,\n            Collection: collectionName,\n            Layout: 'v3-tp02',\n            BillingDay: account.BillingDay\n          };\n\n          $scope.dashboards.push(dashboardItem);\n          $scope.dashboardsMap[dashboardItem.Id] = dashboardItem;\n\n          // Action: Activate a specific customer\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:6D39C9DF-8227-43A2-B1A5-E3AB4E9085C5', function (args) {\n\n            $eaCspService.activateCustomer(cspTeamProfile.Id, args.args.AccountId, args.args.CustomerId, $eaCurrentSession).then(function () {\n\n              $scope.reloadData(cspTeamProfile);\n\n              ngToast.create({\n                className: 'success',\n                content: '<strong>Great!</strong> Customer <strong>' + args.args.CustomerCompany + '</strong> is activated. The initial data sync could take a couple seconds or minutes. If you don\\'t see spending data after more than 15 minutes give us a note.'\n              });\n\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            }).catch(function (error) {\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, error);\n            })\n          });\n\n          // Action: De-Activate a specific customer\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:4A3A4453-D7BF-4DBA-B32B-5F2252750C1F', function (args) {\n\n            var removeConfirmed = confirm('Do you really want to de-activate this customer?\\n\\n!!! Attention: All data of this customer will be removed and the users can\\'t access to the dashboard anymore !!!');\n\n            if (removeConfirmed) {\n              $eaCspService.deActivateCustomer(cspTeamProfile.Id, args.args.AccountId, args.args.CustomerId, $eaCurrentSession).then(function () {\n\n                $scope.reloadData(cspTeamProfile);\n\n                ngToast.create({\n                  className: 'success',\n                  content: '<strong>Ok!</strong> Customer <strong>' + args.args.CustomerCompany + '</strong> is de-activated. It could take up to 24hrs until all data are wiped out from the dashboards!'\n                });\n\n                $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n              }).catch(function (error) {\n                $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, error);\n              })\n            } else {\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            }\n          });\n\n          // Action: Sync a specific customer\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:118D6857-5B03-4424-9D51-25D88420BA4C', function (args) {\n\n            // get all active customers\n            return $eaCspService.getActiveCustomers($scope.activeDashboard.Profile, $scope.activeDashboard.AccountModel, $eaCurrentSession).then(function (loadedCustomers) {\n\n              // map the customer data\n              var customers = loadedCustomers\n                .map(function (c) {\n                  return {\n                    AccountId: $scope.activeDashboard.AccountModel.AccountId || $scope.activeDashboard.AccountModel.accountId,\n                    CustomerId: c.MicrosoftCustomerId || c.microsoftCustomerId,\n                    CustomerName: c.CustomerCompany || c.customerCompany,\n                    NewCommerce: c.newCommerce || false\n                  }\n                }).filter(function(c) {\n                  return !c.NewCommerce && c.CustomerName.toLowerCase() !== 'default';\n                });\n\n              // show the object selector for customers and ask for which customer we should start the sync. Multiple\n              // customers are possible\n              $scope.openCustomerChooser(customers).then(function (selectedCustomers) {\n\n                // trigger per customer the sync\n                selectedCustomers.forEach(function (customer) {\n                  $eaBackend.dataCspSyncCustomerInAccount(cspTeamProfile.Id, customer.AccountId, customer.CustomerId, args.args.period, $eaCurrentSession.DataToken).then(function () {\n                    ngToast.create({\n                      className: 'success',\n                      content: '<strong>Great!</strong> Data Sync for the customer <strong>' + customer.CustomerName + '</strong> is started. This can take a couple seconds or minutes. If you don\\'t see new customers after more than 15 minutes give us a note.'\n                    });\n                  })\n                });\n\n                // we are done with this action\n                $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n              })\n            });\n          });\n\n          // Action: Sync a specific customer\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:DCF83D44-3537-43C9-8CCB-8874008A29A0', function (args) {\n\n            var customer = {\n              AccountId: args.args.AccountId,\n              CustomerId: args.args.CustomerId,\n              CustomerName: args.args.CustomerCompany\n            };\n\n            $eaBackend.dataCspSyncCustomerInAccount(cspTeamProfile.Id, customer.AccountId, customer.CustomerId, null, $eaCurrentSession.DataToken).then(function () {\n\n              ngToast.create({\n                className: 'success',\n                content: '<strong>Great!</strong> Data Sync for the customer <strong>' + customer.CustomerName + '</strong> is started. This can take a couple seconds or minutes. If you don\\'t see new customers after more than 15 minutes give us a note.'\n              });\n\n              // we are done with this action\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            });\n          });\n\n          // Open Customer Margin\n          function openCustomerMargin(cspTeamId, cspAccountId, cspCustomerId) {\n\n            // load the uplift categories\n            return $eaBackend.dataCspGetUpliftCategories(cspTeamId, $eaCurrentSession.DataToken).then(function(upliftCategories) {\n\n              // load the margins\n              return $eaBackend.dataCspGetResellerMarginForCustomer(cspTeamId, cspAccountId, cspCustomerId, $eaCurrentSession.DataToken).then(function (resellerMargins) {\n\n                // show the dialog\n                return $scope.openCspDefineResellerMarginDialog(resellerMargins, upliftCategories).then(function (updatedMargins) {\n\n                  // save the margins\n                  return $eaBackend.dataCspSetResellerMarginForCustomer(cspTeamId, cspAccountId, cspCustomerId, updatedMargins, $eaCurrentSession.DataToken).then(function () {\n\n                    ngToast.create({\n                      className: 'success',\n                      content: '<strong>Great!</strong> Margin was updated correctly'\n                    });\n\n                  });\n                });\n              });\n            });\n          }\n\n          // Action: Define reseller margins\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:28A17E4C-960F-4D79-AD31-B6BBC9B7CFF0', function (args) {\n            return openCustomerMargin(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.PrimaryGroupId).then(function () {\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            });\n          });\n\n          // Action: Define reseller filter\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:4A5811F8-8BA7-484F-9D18-138E4E2F3786', function (args) {\n\n            // load the current reseller filter\n            return $eaBackend.dataCspGetResellerFilterForCustomer(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.PrimaryGroupId, $eaCurrentSession.DataToken).then(function (existingFilter) {\n\n              // show the dialog\n              return $scope.openCspDefineResellerFilterDialog(existingFilter).then(function (updatedFilter) {\n\n                // save the filter\n                return $eaBackend.dataCspSetResellerFilterForCustomer(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.PrimaryGroupId, updatedFilter, $eaCurrentSession.DataToken).then(function () {\n\n                  ngToast.create({\n                    className: 'success',\n                    content: '<strong>Great!</strong> Filter was updated correctly'\n                  });\n\n                  // we are done with this action\n                  $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n                });\n              });\n            });\n          });\n\n          // Action: Trigger V-Meter Update\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:632E41FF-BE9B-4793-B22B-B71EC997FEE1', function (args) {\n\n            // get the month\n            var currentMonth = undefined;\n            if (args.args.ServiceItems && args.args.ServiceItems.length > 0) {\n              currentMonth = args.args.ServiceItems[0].ReportId;\n            }\n\n            $eaBackend.dataCspUpdateVirtualMetersForCustomerInAccount(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.PrimaryGroupId, currentMonth, $eaCurrentSession.DataToken).then(function () {\n\n              ngToast.create({\n                className: 'success',\n                content: '<strong>Great!</strong> Update of virtual service meters for customer <strong>' + args.args.PrimaryGroupName + '</strong> triggered. You will receive an e-mail as soon as your request was processed. It should not take longer than 15 minutes.'\n              });\n\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            }).catch(function (error) {\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, error);\n            })\n          });\n\n          function openCustomerPortal(dashboardId, args, extractedTeamId, noMargin, forceV2) {\n\n            // update our login sessiong with a new delegation token\n            return $eaSession2.updateTokenFromSTS($eaCurrentSession, {delegate: extractedTeamId}).then(function () {\n\n              // read the billing cycle\n              var cycle = $eaBackendDataModeSelector.isBillingCycleEnabled() ? 'billing' : 'monthly';\n\n              // build the url\n              var url = '/app/teams/' + extractedTeamId + '/dashboards?cycle=' + cycle;\n              if (noMargin) {\n                url += '&nomargin=true';\n              }\n\n              if ($scope.activeDashboard && $scope.activeDashboard.AccountModel && ($scope.activeDashboard.AccountModel.TierLevel === 'EA' || $scope.activeDashboard.AccountModel.TierLevel === 'AWS')) {\n                url += '&version=v2';\n              } else if ($stateParams.version === 'v2') {\n                url += '&version=v2';\n              } else if (forceV2) {\n                url += '&version=v2';\n              } else {\n                url += '&version=v1';\n              }\n\n              // open new window with the url\n              $window.open(url, '_blank');\n\n              // we are done with this action\n              return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            }).catch(function () {\n\n              ngToast.create({\n                className: 'danger',\n                content: '<strong>Permission Denied!</strong> You have no access permissions to open the customer dashboard.'\n              });\n\n              // we are done with this action\n              return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            })\n          }\n\n          function openContainers(customerId)\n          {\n            var targetUri = '/app2/teams/' + $stateParams.resellerId + '/apps/accounts/' + $stateParams.active + '/customers/' + customerId + '/containers';\n            console.log('Target-Uri is: ' + targetUri);\n            $window.location.href = targetUri;\n          };\n\n          // Action: Open Customer Portal from Action Panel\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:4452C3F9-6FCB-4749-A1FE-DA7FD77FBB5C', function (args) {\n            return openCustomerPortal(dashboardId, args, args.args.CustomerTeamId ? args.args.CustomerTeamId :  args.args.CustomerId, false, true);\n          });\n\n          // Open container Management\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:B94A8FEE-4EA6-42E5-8F8B-EBC601A06954', function (args) {\n            openContainers(args.args.CustomerId);            \n            $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null); \n            \n          });\n                    \n          // Action: Define Reseller Margin from Action Panel\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:A40E5CC6-A6CC-4094-BD27-AE6E166048D3', function (args) {\n            return openCustomerMargin(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.CustomerId).then(function () {\n              $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n            });           \n          });          \n\n          // Action: Open Customer Portal\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:2929E37C-B3D7-483C-9BF9-4BFCA5D9C92D', function (args) {\n            return openCustomerPortal(dashboardId, args, args.args.TeamId, args.args.NoMargin, args.args.ForceV2);\n          });\n\n          // Toggle Reseller Version\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:9148E92E-6C1C-4846-BE9C-A8A5F9417AB5', function (args) {\n\n            // confirm\n            var upgradeConfirm = confirm('Do you really want to upgrade the processing engine of this customer?\\n\\n!!! Attention: This step is not reversable  !!!');\n            if (!upgradeConfirm) { return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null); }\n\n            // upgrade\n            return $eaBackend.dataCspUpgradeResellerVersionForCustomer(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.PrimaryGroupId, $eaCurrentSession.DataToken).then(function() {\n\n              ngToast.create({\n                className: 'success',\n                content: '<strong>Greate!</strong> The customer was upgrade, please refresh this page.'\n              });\n\n            }).catch(function() {\n\n              ngToast.create({\n                className: 'danger',\n                content: '<strong>Version Upgrade Failed!</strong> Something went wrong, please try again later.'\n              });\n\n            });\n\n          });\n\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:FD48824C-1DAE-4787-987C-56A2BF0896BA', function (args) {\n            var enabledState = $eaBackendDataModeSelector.isBillingCycleEnabled() ? 'BillingCycle' : 'Default';\n            return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, enabledState, null);\n          });\n\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:408B9A2F-6BDE-447D-A794-26957C719D37', function (args) {\n            if (args.args.state === 'BillingCycle') {\n              $eaBackendDataModeSelector.enableBillingCycle(true, account.BillingDay);\n            } else {\n              $eaBackendDataModeSelector.enableBillingCycle(false, 1);\n            }\n\n            return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n          });\n\n\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:3D116683-B590-4199-8C70-83E0327616FD', function (args) {\n            $state.go('authorized.reportAdd.step01-csp', {\n              team: account.TeamId,\n              currency: account.Currency,\n              accountid: account.AccountId\n            });\n            return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n          });\n\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:2DD4B2BC-983F-434B-B449-7A655AEE2D23', function (args) {\n\n            var hintText = '';\n            var periodDate = new Date(args.args.selectedPeriod);\n\n            if ($eaBackendDataModeSelector.isBillingCycleEnabled()) {\n              var billingDay = $eaBackendDataModeSelector.getBillingCycleDay();\n              if (billingDay !== 1) {\n                periodDate = $acTimelineGenerator.addMonth($acTimelineGenerator.addDay(periodDate, billingDay - 1), -1);\n              }\n            }\n\n            if (periodDate > new Date()) {\n              hintText = \"No consumption data available because period between <strong>\" + periodDate.toDateString() + \"</strong> - <strong>\" + $acTimelineGenerator.addDay($acTimelineGenerator.addMonth(periodDate), -1).toDateString() + \"</strong> not started yet\";\n            } else {\n              hintText = \"Consumption between <strong>\" + periodDate.toDateString() + \"</strong> - <strong>\" + $acTimelineGenerator.addDay($acTimelineGenerator.addMonth(periodDate), -1).toDateString() + \"</strong>\";\n            }\n\n            return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, hintText, null);\n          });\n\n          // Publish to Reseller\n          function publishCustomerToReseller(dashboardId, args, teamId, accountId, customerId) {\n\n            // load all CSP Resellers\n            return $eaBackend.dataGetCspResellers($scope.Profile.Id, $eaCurrentSession.DataToken).then(function (cspResellers) {\n\n              // Open the Publish to Reseller Dialog\n              var description = 'Please select a reseller your would like to publish the customer to';\n              return $scope.openObjectPickerDialog('Select Reseller', description, 'fa-taxi', function (model) {\n                return model.resellerName;\n              }, function (model) {\n                return model.resellerId;\n              }, cspResellers, [], true).then(function (selectedReseller) {\n\n                if (selectedReseller) {\n\n                  // Publish the customer to reseller\n                  return $eaBackend.dataPublishCspCustomer(teamId, selectedReseller.resellerId, accountId, customerId, $eaCurrentSession.DataToken).then(function () {\n\n                    // show\n                    ngToast.create({\n                      className: 'success',\n                      content: '<strong>Great!</strong> The customer is published to the reseller!'\n                    });\n\n                    // we are done with this action\n                    return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n                  });\n                }\n              });\n            });\n          }\n\n          // Publish to Reseller from Grid\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:55E8F243-E782-426C-825B-70E4C484846A', function (args) {\n              return publishCustomerToReseller(dashboardId, args, cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.PrimaryGroupId);\n          });\n\n          // Publish to Reseller from Actions Panel\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:CAD64FD1-CDAF-47A5-98FB-34E6E8CBF177', function (args) {\n            return publishCustomerToReseller(dashboardId, args, cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.CustomerId);\n          });\n\n          // Download Invoice\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:099FBA0F-6CFC-403F-B104-011BD8CE65AB', function (args) {\n\n            // check\n            var billingDate = new Date(args.args.period + '-' + ($scope.activeDashboard.AccountModel.BillingDay + 1));\n            if (!(new Date() >= billingDate)) {\n              // show\n              ngToast.create({\n                className: 'danger',\n                content: '<strong>Error!</strong> The invoice is not available right now, please try again later!'\n              });\n\n              // done\n              return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n            } else {\n              // load the data\n              $eaBackend.dataGetCspDownloadAccountInvoice(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, args.args.period, $eaCurrentSession.DataToken).then(function (downloadUri) {\n\n                // redirect in a new tab to the file\n                window.open(downloadUri + '&svp=' + $eaCurrentSession.getServiceProviderId(), 'download');\n\n                // done\n                return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n              });\n            }\n          });\n\n          // Open Customer Settings\n          $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:EE74EAF3-E461-4A11-9E29-F9A9069799D1', function (args) {\n\n            var customerId = args.args.PrimaryGroupId;\n            if (!customerId)\n              customerId = args.args.CustomerId;\n\n            // load the margins\n            return $eaBackend.dataCspGetResellerFeaturesForCustomer(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, customerId, $eaCurrentSession.DataToken).then(function (features) {\n\n              var customer = {};\n              if (args.args.ServiceItems && args.args.ServiceItems.length > 0) {\n                customer = args.args.ServiceItems[0];\n              } else {\n                customer = args.args;\n              }\n\n              // show the dialog\n              return $scope.openCspDefineResellerFeaturesDialog(features, customer, $scope.activeDashboard.AccountModel).then(function (updatedFeatures) {\n\n                // save the margins\n                return $eaBackend.dataCspSetResellerFeaturesForCustomer(cspTeamProfile.Id, $scope.activeDashboard.AccountModel.AccountId, customerId, updatedFeatures, $eaCurrentSession.DataToken).then(function () {\n\n                  // show\n                  ngToast.create({\n                    className: 'success',\n                    content: '<strong>Great!</strong> New features are activated, it could take up to 24hrs until new data are visible!'\n                  });\n\n                  // done\n                  return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n                });\n              });\n            });\n          });\n        });\n\n        // build the ordered dashboards collection\n        $scope.dashboardsOrdered = [];\n        $scope.dashboardsOrdered.appendArray($scope.dashboards);\n        $scope.dashboardsOrdered.sortOn('Name');\n      }\n\n      // mark the first dashboard as active\n      if ($scope.dashboards.length > 0) {\n\n        // reads the dashboard from last used dashboard\n        var targetDashboard = $scope.dashboards[0];\n\n        // check if we need to override this via active parameter\n        if ($stateParams.active) { targetDashboard = $scope.dashboardsMap[$stateParams.active]; }\n\n        // use the fallback\n        if (!targetDashboard) { targetDashboard = $scope.dashboards[0]; }\n\n        // activate our targetdashboard\n        $scope.selectDashboard(targetDashboard);\n\n      }\n\n      // cache the accounts\n      $scope.Accounts = cspAccounts;\n\n    });\n  }\n\n  // load the accounts\n  return loadDashboards($scope.Profile).then(function() {\n\n    $scope.addAccount = function() {\n      $state.go('authorized.csp.wadd', {resellerId: $stateParams.resellerId});\n    };\n\n    $scope.openEditCspAccountDialog = function() {\n\n      // load the account including all secrets\n      $eaCspService.loadAccount($scope.activeDashboard.Profile, $scope.activeDashboard.AccountModel.AccountId, $eaCurrentSession).then(function(loadedAccount) {\n\n        // open the dialog\n        var dialogPromise;\n\n        if (loadedAccount.TierLevel && loadedAccount.TierLevel === 'EA') {\n          dialogPromise = $scope.openCspUpdateEAAccountDialog(loadedAccount);\n        } else if (loadedAccount.TierLevel && loadedAccount.TierLevel === 'AWS') {\n          dialogPromise = $scope.openCspUpdateAWSAccountDialog(loadedAccount);\n        } else {\n          dialogPromise = $scope.openCspUpdateT1AccountDialog(loadedAccount);\n        }\n\n        // wait for finishing\n        return dialogPromise.then(function (updatedAccountModel) {\n\n          var actionPromise = $q.when();\n          // check if we need to remove the account\n          if (updatedAccountModel.action === 'remove') {\n            actionPromise = $eaCspService.deleteAccount($scope.activeDashboard.Profile, loadedAccount, $eaCurrentSession).then(function () {\n              $scope.refreshScreen();\n            });\n          } else if (updatedAccountModel.action === 'consent') {\n            // generate the constent link\n            actionPromise = $eaBackendAzureV2.dataCpvGetConsentLink(loadedAccount.TeamId, loadedAccount.AccountId, $eaCurrentSession.DataToken).then(function(result) {\n              if (result && result.consentUrl) {\n                // Redirect\n                $window.open(result.consentUrl,'_blank');\n              } else {\n                // show message\n                ngToast.create({\n                  className: 'danger',\n                  content: '<strong>Oh Oh!</strong> Failed to retrieve the consent link, please try again!'\n                });\n              }\n            });\n          } else if (updatedAccountModel.action === 'update') {\n\n            if (loadedAccount.TierLevel && loadedAccount.TierLevel === 'EA') {\n              actionPromise = $eaBackendAzureV2.dataCspUpdateAccountEAV2(loadedAccount.TeamId, loadedAccount.AccountId, updatedAccountModel.account.Name, updatedAccountModel.account.Currency, updatedAccountModel.account.SecurityToken, updatedAccountModel.account.ExchangeRate, updatedAccountModel.account.DefaultResellerManagement, $eaCurrentSession.DataToken).then(function () {\n                $scope.refreshScreen();\n              });\n            } else if (loadedAccount.TierLevel && loadedAccount.TierLevel === 'AWS') {\n              actionPromise = $eaBackendAzureV2.dataCspUpdateAccountAWSV2(loadedAccount.TeamId, loadedAccount.AccountId, updatedAccountModel.account.Name, updatedAccountModel.account.Currency, updatedAccountModel.account.ExchangeRate, updatedAccountModel.account.DefaultResellerManagement, $eaCurrentSession.DataToken).then(function() {\n                $scope.refreshScreen();\n              });\n            } else {\n              // update the account\n              actionPromise = $eaBackendAzureV2.dataCspUpdateAccountT1V2(loadedAccount.TeamId, loadedAccount.AccountId, updatedAccountModel.account.Name, updatedAccountModel.account.ClientId, updatedAccountModel.account.ClientSecret, updatedAccountModel.account.Domain, updatedAccountModel.account.BillingDay, updatedAccountModel.account.ExchangeRate, updatedAccountModel.account.AutoActivateCustomers, updatedAccountModel.account.DefaultResellerManagement, $eaCurrentSession.DataToken).then(function () {\n\n                if ($scope.activeDashboard.AccountModel.BillingDay !== updatedAccountModel.account.BillingDay) {\n\n                  ngToast.create({\n                    className: 'info',\n                    content: '<strong>Heads Up!</strong> You changed the BillingDay, please re-sync all customers otherwise the changed will not be effective'\n                  });\n\n                }\n\n                // update our selected account\n                $scope.activeDashboard.AccountModel = updatedAccountModel.account;\n\n                // done\n                return $q.when();\n              });\n            }\n\n          } else {\n            console.log(updatedAccountModel.action + '-Action not supported');\n          }\n\n          // execute\n          $busy.during(actionPromise).then(function () {\n\n            // trigger data relaod\n            $scope.reloadData($scope.Profile);\n\n            // show message\n            ngToast.create({\n              className: 'success',\n              content: '<strong>Great!</strong> The CSP Account was updated successfully'\n            });\n\n          }).catch(function(e) {\n            // show message\n            ngToast.create({\n              className: 'danger',\n              content: '<strong>Oh Oh!</strong> An error occurred when updating the CSP Account, please try again!'\n            });\n          });\n        });\n      });\n    };\n\n    $scope.openResellers = function()\n    {\n      $state.go('authorized.csp.resellermanagement', {resellerId: $stateParams.resellerId});\n    };\n\n    $scope.openVirtualMeters  = function()\n    {\n      $window.location.href = '/app2/teams/' + $stateParams.resellerId + '/apps/settings/team/virtualmeters';\n    };    \n\n    $scope.openUpliftCategories  = function()\n    {\n      $window.location.href = '/app2/teams/' + $stateParams.resellerId + '/apps/settings/team/upliftcategories';\n    };\n\n    $scope.openCustomerSegmentation = function() {\n      $window.location.href = '/app2/teams/' + $stateParams.resellerId + '/apps/accounts/' + $state.params.active + '/customersegmentation';\n    };\n\n    $scope.openDownloadPriceSheetDialog = function() {\n\n      // load the account including all secrets\n      $eaCspService.loadAccount($scope.Profile, $scope.activeDashboard.AccountModel.AccountId, $eaCurrentSession).then(function(loadedAccount) {\n        return $scope.openPriceSheetDownload(loadedAccount.TeamId, loadedAccount.AccountId, loadedAccount.Currency, loadedAccount.Country, $eaCurrentSession.DataToken);\n      });\n    };\n\n    $scope.syncCustomers = function() {\n      $eaBackend.dataCspSyncAccount($scope.Profile.Id, $scope.activeDashboard.AccountModel.AccountId, $eaCurrentSession.DataToken).then(function () {\n        ngToast.create({\n          className: 'success',\n          content: '<strong>Great!</strong> Data Sync for the account <strong>' + $scope.activeDashboard.AccountModel.Name + '</strong> is started. This can take a couple seconds or minutes. If you don\\'t see new customers after more than 15 minutes give us a note.'\n        });\n      });\n    };\n\n    $scope.registerCustomers = function() {\n\n      if ($scope.activeDashboard.AccountModel.TierLevel === 'V1') {\n        return $scope.openCspRegisterCustomerCostMgntDialog().then(function (newCustomerDialogResult) {\n          return $eaBackend.dataCspRegisterCostMgntCustomer($scope.Profile.Id, $scope.activeDashboard.AccountModel.AccountId, newCustomerDialogResult.customer.CustomerName, newCustomerDialogResult.customer.HasConsumption, $eaCurrentSession.DataToken).then(function() {\n            $scope.reloadData();\n          });\n        }).catch(function (result) {\n\n          if (result && result == 'cancel') {\n            return;\n          }\n          \n          // notify regarding error\n          ngToast.create({\n            className: 'danger',\n            content: '<strong>Error!</strong> Failed to register CSP customer, please contact our support!'\n          });\n        });\n      } else {\n        return $scope.openCspRegisterCustomerDialog().then(function (newCustomerDialogResult) {\n          return $eaBackend.dataCspRegisterCustomer($scope.Profile.Id, $scope.activeDashboard.AccountModel.AccountId, newCustomerDialogResult.customer.TenantIdOrDomain, $eaCurrentSession.DataToken).then(function () {\n            $scope.reloadData();\n          }).catch(function () {\n\n            if (result && result == 'cancel') {\n              return;\n            }\n            \n            // notify regarding error\n            ngToast.create({\n              className: 'danger',\n              content: '<strong>Error!</strong> Failed to register CSP customer, please contact our support!'\n            });\n          });\n        });\n      }\n    };\n\n    $scope.toggleVersion = function() {\n      if ($stateParams.version === 'v2') {\n        $stateParams.version = 'v1';\n      } else {\n        $stateParams.version = 'v2';\n      }\n\n      $state.go('.', $stateParams,\n        { notify: false });\n\n      // reload\n      location.reload();\n    };\n\n    // update the menu navbar\n    $scope.updateControllerNavBarMenu();\n  });\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep02EACtrl', function ($scope, $state, $stateParams, $busy, $eaCspService, $eaCurrentSession, jwtHelper) {\n\n  $scope.availableCustomerMappings = ['CostCenter', 'Department', 'Subscription', 'ResourceGroup', 'Account'];\n\n  $scope.formAddToken = {\n    name: null,\n    ea: null,\n    eaType: null,\n    token: null,\n    currency: null,\n    customermapping: $scope.availableCustomerMappings[0]\n  };\n\n  $scope.errorRaised = false;\n\n\n  $scope.next = function()\n  {\n    // reset the error\n    $scope.errorRaised = false;\n\n\n    // register the account\n    return $busy.during($eaCspService.registerAccountEA($scope.Profile, $eaCurrentSession, $scope.formAddToken.name, $scope.formAddToken.currency, $scope.formAddToken.token, $scope.formAddToken.customermapping).then(function() {\n      $state.go('authorized.csp.wadd.step03', {resellerId: $stateParams.resellerId});\n    })).catch(function() {\n      $scope.errorRaised = true;\n    })\n  };\n\n  $scope.tokenFieldChanged = function() {\n\n    try {\n      // read the token from the input field\n      var decodedToken = jwtHelper.decodeToken($scope.formAddToken.token);\n\n      // check if we have an enrollment number, if so add\n      if (decodedToken.EnrollmentNumber !== undefined) {\n        $scope.formAddToken.ea = decodedToken.EnrollmentNumber;\n      } else {\n        $scope.formAddToken.ea = null;\n      }\n\n      // check what type the contract is\n      if (decodedToken.ReportView !== undefined) {\n        $scope.formAddToken.eaType = decodedToken.ReportView;\n      } else {\n        $scope.formAddToken.eaType = null;\n      }\n    } catch(e) {\n      $scope.formAddToken.ea = null;\n      $scope.formAddToken.eaType = null;\n    }\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspGsiCtrl', function ($scope, $state, $eaCspService, $eaCurrentSession, $busy, $q, $controller, $modal, $toolbar, $eaBackendDataModeSelector, $eaSession2, $eaWidgetDashboardManager, ngToast, $eaBackend, $eaBackendAzureV2, $timeout, $window, $stateParams, $acTimelineGenerator) {\n\n  $.extend(self, $controller('GsiUpdateSettingsCtrlMixin', {$scope: $scope, $modal: $modal}));\n\n  $scope.dashboardEditMode = false;\n  $scope.activeDashboard = null;\n  $scope.dataToken = $eaCurrentSession.DataToken;\n\n  $scope.toggelEditMode = function() {\n    $scope.dashboardEditMode = !$scope.dashboardEditMode;\n  };\n\n  // update the navbar menu\n  $scope.updateControllerNavBarMenu = function() {\n\n    // Add csp button\n    $toolbar.addItem('gsi.switchToCsp', 'Cloud Solution Providers Portal', 'fa-map-marker', 'Visit the portal for Cloud Solution Providers', true, function() {\n      $state.go('authorized.csp.accounts', {resellerId: $stateParams.resellerId});\n    });\n\n    // Open the contract settings dialog\n    $toolbar.addItem('gsi.openSettings', 'Settings', 'fa-cog', \"Allows to edit the System Integrator Account\", true, $scope.openEditGsiSettingsDialog);\n\n    // Reload operation\n    $toolbar.addItem('gsi.performReload', 'Reload', 'fa-refresh', \"Current data will be refreshed\", true, $scope.reloadData);\n  };\n\n  var dashboardId = 'gsioverview';\n\n  $scope.activeDashboard = {\n    Id: dashboardId,\n    Profile: $scope.Profile,\n    Team: $scope.Profile.Id,\n    ContractId: 'GSI:' + $scope.Profile.Id,\n    Collection: 'gsi.v1',\n    Layout: 'v1'\n  };\n\n  $scope.reloadData = function () {\n    $eaWidgetDashboardManager.reload($scope.activeDashboard.Id);\n  };\n\n  $scope.openEditGsiSettingsDialog = function()\n  {\n    // load the SI\n    return $eaBackend.dataCspGetGsiSettings($scope.Profile.Id, $eaCurrentSession.DataToken).then(function(settings) {\n\n      // open dialog\n      return $scope.openGsiUpdateSettingsDialog({ReferenceCurrency: settings.referenceCurrency}).then(function(settingsResult) {\n\n        // Update\n        return $eaBackend.dataCspSetGsiSettings($scope.Profile.Id, settingsResult.account.ReferenceCurrency, $eaCurrentSession.DataToken).then(function() {\n\n          // reload\n          $scope.reloadData();\n        })\n      });\n    })\n  };\n\n  // update the menu navbar\n  $scope.updateControllerNavBarMenu();\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddCtrl', function ($scope, $state, $stateParams, $rootScope, $acWizardHelpers) {\n\n  // define the current state\n  $scope.currentStep = $acWizardHelpers.getCurrentStep($state.current);\n\n  // the error container\n  $scope.registerError = null;\n\n  // handle state changes to adapt the control\n  $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){\n    $scope.currentStep = $acWizardHelpers.getCurrentStep(toState);\n  });\n\n  // just redirect to the step01 as default\n  if ($state.current.name === 'authorized.csp.wadd') { return $state.go('authorized.csp.wadd.step01', {resellerId: $stateParams.resellerId}); }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep01Ctrl', function ($scope, $state, $stateParams, $busy, $eaCurrentSession, $eaCspService) {\n\n  // contains the form content\n  $scope.formStep01 = {\n    partnership: 'cspt1'\n  };\n\n  $scope.next = function() {\n\n    if ($scope.formStep01.partnership === 'cspt1') {\n      return $state.go('authorized.csp.wadd.step02-t1', {resellerId: $stateParams.resellerId});\n    } else if ($scope.formStep01.partnership === 'cspt2') {\n      return $state.go('authorized.csp.wadd.step02-t2', {resellerId: $stateParams.resellerId});\n    } else if ($scope.formStep01.partnership === 'cspea') {\n      return $state.go('authorized.csp.wadd.step02-ea', {resellerId: $stateParams.resellerId});\n    } else if ($scope.formStep01.partnership === 'cspaws') {\n      return $state.go('authorized.csp.wadd.step02-aws', {resellerId: $stateParams.resellerId});\n    } else if ($scope.formStep01.partnership === 'cspv1') {\n      return $state.go('authorized.csp.wadd.step02-v1', {resellerId: $stateParams.resellerId});\n    } else if ($scope.formStep01.partnership === 'cspdemo') {\n      return $state.go('authorized.csp.wadd.step02-demo', {resellerId: $stateParams.resellerId});\n    }\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep02T1Ctrl', function ($scope, $state, $stateParams, $busy, $eaCspService, $eaCurrentSession) {\n\n  $scope.newAccount = {\n    Name: \"\",\n    ClientId: \"\",\n    ClientSecret: \"\",\n    Domain: \"\",\n    BillingDay: 1,\n    SyncCustomers: true,\n    AutoActivateCustomers: false\n  };\n\n  $scope.errorRaised = false;\n\n\n  $scope.next = function()\n  {\n    // reset the error\n    $scope.errorRaised = false;\n\n    // register the account\n    return $busy.during($eaCspService.registerAccount($scope.Profile, $eaCurrentSession, $scope.newAccount.Name, $scope.newAccount.ClientId, $scope.newAccount.ClientSecret, $scope.newAccount.Domain, $scope.newAccount.BillingDay, $scope.newAccount.SyncCustomers, $scope.newAccount.AutoActivateCustomers).then(function() {\n      $state.go('authorized.csp.wadd.step03', {resellerId: $stateParams.resellerId});\n    })).catch(function() {\n      $scope.errorRaised = true;\n    })\n  }\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep02T2Ctrl', function ($scope, $state, $stateParams, $busy, $eaCspService, $eaCurrentSession) {\n\n  $scope.newAccount = {\n    Name: \"\",\n    Currency: \"\",\n    Country: \"\",\n    BillingDay: 1\n  };\n\n  $scope.errorRaised = false;\n\n\n  $scope.next = function()\n  {\n    // reset the error\n    $scope.errorRaised = false;\n\n    // register the account\n    return $busy.during($eaCspService.registerAccountT2($scope.Profile, $eaCurrentSession, $scope.newAccount.Name, $scope.newAccount.Currency, $scope.newAccount.Country, $scope.newAccount.BillingDay).then(function() {\n\n      $state.go('authorized.csp.wadd.step03', {resellerId: $stateParams.resellerId});\n    })).catch(function() {\n      $scope.errorRaised = true;\n    })\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep02AWSCtrl', function ($scope, $state, $stateParams, $busy, $eaCspService, $eaCurrentSession, jwtHelper, $eaBackend) {\n\n  $scope.availableCustomerMappings = ['Payer Account', 'CostCenter', 'Department', 'Subscription', 'ResourceGroup'];\n\n  $scope.form = {\n    name:undefined,\n    roleArn: undefined,\n    externalId: undefined,\n    bucket: undefined,\n    prefix: undefined,\n    reportname: undefined,\n    customermapping: $scope.availableCustomerMappings[0]\n  };\n\n  var awsData = sessionStorage.getItem('csp.awsdata');\n  if (awsData) {\n    $scope.form = JSON.parse(awsData);\n  }\n\n  $scope.error = undefined;\n\n  $scope.next = function()\n  {\n    if(location.href.indexOf('localhost') !== -1) {\n      sessionStorage.setItem(\"csp.awsdata\", JSON.stringify($scope.form));\n    }\n\n    if ($scope.form.customermapping === 'Payer Account') {\n      $scope.form.customermapping = 'Subscription';\n    }\n\n    $busy.setMessage(\"Verifying connection to AWS...\");\n    $busy.during($eaBackend.dataAwsVerifyConnection($stateParams.resellerId, $scope.form.roleArn, $scope.form.externalId, $scope.form.bucket, $eaCurrentSession.DataToken)).then(function() {\n\n      $busy.setMessage(\"Registering Contract...\");\n      return $busy.during($eaBackend.dataCspAwsRegisterContract($stateParams.resellerId, $scope.form.name, $scope.form.roleArn, $scope.form.externalId, $scope.form.bucket, $scope.form.prefix, $scope.form.reportname, $scope.form.customermapping, $eaCurrentSession.DataToken)).then(function(contractId) {\n\n        // show the finish page\n        $state.go('authorized.csp.wadd.step03', {resellerId: $stateParams.resellerId});\n      })\n    }).catch(function(error) {\n\n      if (error && error.data && error.data.message) {\n        $scope.error = error.data.message;\n      } else if (error && error.data) {\n        $scope.error = error.data;\n      } else {\n        $scope.error = 'Unknown error'\n      }\n    })\n  }\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep02DemoCtrl', function ($scope, $state, $stateParams, $busy, $eaCspService, $eaCurrentSession) {\n\n  $scope.formData = {\n    contractType: 'EA'\n  };\n\n  $scope.next = function() {\n\n    // define the mapping\n    var mapping = \"CostCenter\";\n    if ($scope.formData.contractType === 'AWS') {\n      mapping = 'Subscription';\n    }\n\n    // register the account\n    return $busy.during($eaCspService.registerAccountDemo($scope.Profile, $scope.formData.contractType, mapping, $eaCurrentSession).then(function () {\n      $state.go('authorized.csp.wadd.step03', {resellerId: $stateParams.resellerId});\n    })).catch(function (error) {\n      if (error && error.data && error.data.message) {\n        $scope.error = error.data.message;\n      } else if (error && error.data) {\n        $scope.error = error.data;\n      } else {\n        $scope.error = 'Unknown error'\n      }\n    });\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep02V1Ctrl', function ($scope, $state, $stateParams, $busy, $eaCspService, $eaCurrentSession, jwtHelper) {\n\n  $scope.formAddContract = {\n    name: null,\n    currency: null\n  };\n\n  $scope.errorRaised = false;\n\n\n  $scope.next = function()\n  {\n    // reset the error\n    $scope.errorRaised = false;\n\n\n    // register the account\n    return $busy.during($eaCspService.registerAccountV1($scope.Profile, $eaCurrentSession, $scope.formAddContract.name, $scope.formAddContract.currency).then(function() {\n      $state.go('authorized.csp.wadd.step03', {resellerId: $stateParams.resellerId});\n    })).catch(function() {\n      $scope.errorRaised = true;\n    });\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspUpdateT1AccountCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspUpdateT1AccountDialog = function(exitingAccountModel) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_csp_update_t1_account.html\",\n      controller: 'ModalCspUpdateT1AccountCtrl',\n      resolve: {\n        AccountModel: function() {\n          return exitingAccountModel ? exitingAccountModel : {};\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspUpdateT1AccountCtrl', function($scope, $modalInstance, AccountModel) {\n\n  $scope.newAccount = {\n    Name: \"\",\n    ClientId: \"\",\n    ClientSecret: \"\",\n    Domain: \"\",\n    BillingDay: 1,\n    ExchangeRate: 1.0,\n    AutoActivateCustomers: false,\n    DefaultResellerManagement: false\n  };\n\n  $scope.updateMode = false;\n\n  // Adjust the Name of the account model in case of missing\n  if (!AccountModel.Name || AccountModel.Name.length == 0) {\n    AccountModel.Name = AccountModel.Domain;\n  }\n\n  // edit the account model\n  if (AccountModel && AccountModel.Name) {\n    $scope.updateMode = true;\n    $scope.newAccount = JSON.parse(JSON.stringify(AccountModel));\n    $scope.newAccount.BillingDay == 0 ? $scope.newAccount.BillingDay = 1 : $scope.newAccount.BillingDay = $scope.newAccount.BillingDay;\n    $scope.title = \"Update Cloud Solutions Provider Program Account\";\n  } else {\n    $scope.title = \"Register Cloud Solutions Provider Program Account\";\n  }\n\n  $scope.ok = function () {\n    $modalInstance.close({ account: $scope.newAccount, action: $scope.updateMode ? 'update' : 'create'});\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n  $scope.removeAccount = function() {\n    var ok = confirm('Do you really want to remove this account? This will remove all data from the system and you need to re-register the account later if required.');\n    if (ok) { $modalInstance.close({action: 'remove'}); }\n  };\n\n  $scope.consentCPV = function() {\n    $modalInstance.close({action: 'consent'});\n  };\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspAddStep03Ctrl', function ($scope, $state) {\n\n  $scope.next = function() {\n\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspUpdateEAAccountCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspUpdateEAAccountDialog = function(exitingAccountModel) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_csp_update_ea_account.html\",\n      controller: 'ModalCspUpdateEAAccountCtrl',\n      resolve: {\n        AccountModel: function() {\n          return exitingAccountModel ? exitingAccountModel : {};\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspUpdateEAAccountCtrl', function($scope, $modalInstance, AccountModel, jwtHelper) {\n\n  $scope.newAccount = {\n    Name: \"\",\n    Currency: \"\",\n    SecurityTokenExpirationDate: \"\",\n    SecurityToken: undefined,\n    SecurityTokenValid: false,\n    SecurityTokenExpired: false,\n    ExchangeRate: 1.0,\n    DefaultResellerManagement: false\n  };\n\n  // Adjust the Name of the account model in case of missing\n  if (!AccountModel.Name || AccountModel.Name.length == 0) {\n    AccountModel.Name = AccountModel.Domain;\n  }\n\n  // initial set\n  $scope.newAccount.Name = AccountModel.Name;\n  $scope.newAccount.Currency = AccountModel.Currency;\n  $scope.newAccount.SecurityTokenExpirationDate = AccountModel.TokenExpires ? new Date(AccountModel.TokenExpires) : new Date(\"2019-01-19\");\n  $scope.newAccount.SecurityTokenExpired = ($scope.newAccount.SecurityTokenExpirationDate < new Date());\n  $scope.newAccount.SecurityTokenValid = true;\n  $scope.newAccount.ExchangeRate = AccountModel.ExchangeRate;\n  $scope.newAccount.DefaultResellerManagement = AccountModel.DefaultResellerManagement;\n\n\n  $scope.title = \"Update Cloud Solutions Provider Program Account\";\n\n  $scope.ok = function () {\n    $modalInstance.close({ account: $scope.newAccount, action: 'update' });\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n  $scope.removeAccount = function() {\n    var ok = confirm('Do you really want to remove this account? This will remove all data from the system and you need to re-register the account later if required.');\n    if (ok) { $modalInstance.close({action: \"remove\"}); }\n  };\n\n  $scope.verifySecurityToken = function(enteredToken) {\n\n    // check the token structure\n    var decodedToken = null;\n    var tokenExpired = false;\n    try {\n      decodedToken = jwtHelper.decodeToken(enteredToken);\n      tokenExpired = jwtHelper.isTokenExpired(enteredToken);\n    } catch(error) {\n      decodedToken = null;\n    }\n\n    if (decodedToken) {\n      $scope.newAccount.SecurityTokenExpirationDate = new Date(decodedToken.exp * 1000);\n      $scope.newAccount.SecurityTokenExpired = tokenExpired;\n      $scope.newAccount.SecurityTokenValid = true;\n    } else {\n      $scope.newAccount.SecurityTokenValid = false;\n    }\n  }\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspUpdateAWSAccountCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspUpdateAWSAccountDialog = function(exitingAccountModel) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_csp_update_aws_account.html\",\n      controller: 'ModalCspUpdateAWSAccountCtrl',\n      resolve: {\n        AccountModel: function() {\n          return exitingAccountModel ? exitingAccountModel : {};\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspDefineResellerMarginCtrl', function($scope, $modalInstance, ResellerMargin, UpliftCategories) {\n\n  $scope.updatedResellerMargins =  JSON.parse(JSON.stringify(ResellerMargin));\n\n  $scope.availableMatchKeys = JSON.parse(JSON.stringify(UpliftCategories));\n\n  $scope.newMarginModel = {\n    MatchKey: '*',\n    Margin: 0,\n    ValidUntil: ''\n  };\n\n  $scope.uiHelper = {\n    datePopupOpen: false,\n    datePopupOptions: {}\n  };\n\n  $scope.openDatePopup = function() {\n    $scope.uiHelper.datePopupOpen = true;\n  };\n\n  $scope.deleteMargin = function(margin) {\n    var idx = $scope.updatedResellerMargins.indexOf(margin);\n    if (idx !== -1) { $scope.updatedResellerMargins.splice(idx, 1); }\n  };\n\n  $scope.addMargin = function() {\n\n    // adapt value\n    // if ($scope.newMarginModel.Margin > 1) {  $scope.newMarginModel.Margin =  $scope.newMarginModel.Margin / 100; };\n    $scope.newMarginModel.Margin =  $scope.newMarginModel.Margin / 100;\n\n    // add\n    $scope.updatedResellerMargins.push($scope.newMarginModel);\n\n    // build new\n    $scope.newMarginModel = {\n      MatchKey: '*',\n      Margin: 0,\n      ValidUntil: ''\n    };\n  };\n\n  $scope.ok = function () {\n    // Ask\n    var ok = confirm('Changing the margin/uplift outdates all cached reports, when the customer is visiting his portal ' +\n                     'the next time it could take a very long time. You can force this process by visiting the portal ' +\n                     'in admin on behalf of! Do you really want to change the margin/uplift values?');\n    if (ok) {\n      $modalInstance.close($scope.updatedResellerMargins);\n    }\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspRegisterCustomerCostMgntCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspRegisterCustomerCostMgntDialog = function() {\n\n    var modalInstance = $modal.open({\n      templateUrl: 'views/csp/modals/modal_ac_csp_register_customer_costmgnt.html',\n      controller: 'ModalCspRegisterCustomerCostMgntCtrl'\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspRegisterCustomerCostMgntCtrl', function($scope, $modalInstance) {\n\n  $scope.newCustomer= {\n    CustomerName: undefined,\n    HasConsumption: true\n  };\n\n  $scope.ok = function () {\n    $modalInstance.close({ customer: $scope.newCustomer});\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n\n  $scope.validateForm = function() {\n    return $scope.newCustomer.CustomerName;    \n  }\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspUpdateAWSAccountCtrl', function($scope, $modalInstance, AccountModel, jwtHelper) {\n\n  $scope.newAccount = {\n    Name: \"\",\n    Currency: \"\",\n    ExchangeRate: 1.0,\n    DefaultResellerManagement: false\n  };\n\n  // Adjust the Name of the account model in case of missing\n  if (!AccountModel.Name || AccountModel.Name.length == 0) {\n    AccountModel.Name = AccountModel.Domain;\n  }\n\n  // initial set\n  $scope.newAccount.Name = AccountModel.Name;\n  $scope.newAccount.Currency = AccountModel.Currency;\n  $scope.newAccount.ExchangeRate = AccountModel.ExchangeRate;\n  $scope.newAccount.DefaultResellerManagement = AccountModel.DefaultResellerManagement;\n\n\n  $scope.title = \"Update Cloud Solutions Provider Program Account\";\n\n  $scope.ok = function () {\n    $modalInstance.close({ account: $scope.newAccount, action: 'update' });\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n  $scope.removeAccount = function() {\n    var ok = confirm('Do you really want to remove this account? This will remove all data from the system and you need to re-register the account later if required.');\n    if (ok) { $modalInstance.close({action: \"remove\"}); }\n  };\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspRegisterCustomerCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspRegisterCustomerDialog = function() {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_csp_register_customer.html\",\n      controller: 'ModalCspRegisterCustomerCtrl'\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspRegisterCustomerCtrl', function($scope, $modalInstance) {\n\n  $scope.newCustomer= {\n    TenantIdOrDomain: undefined\n  };\n\n  $scope.ok = function () {\n    $modalInstance.close({ customer: $scope.newCustomer});\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\");\n  };\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('GsiUpdateSettingsCtrlMixin', function($scope, $modal) {\n\n  $scope.openGsiUpdateSettingsDialog = function(existingGSIAccountModel) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_gsi_update_settings.html\",\n      controller: 'ModalGsiUpdateSettingsCtrl',\n      resolve: {\n        SystemIntegratorAccountModel: function() {\n          return existingGSIAccountModel;\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalGsiUpdateSettingsCtrl', function($scope, $modalInstance, SystemIntegratorAccountModel) {\n\n  $scope.gsiAccountModel = SystemIntegratorAccountModel || { ReferenceCurrency: \"EUR\" };\n\n  $scope.ok = function () {\n    $modalInstance.close({ account: $scope.gsiAccountModel, action: 'update' });\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspChooseCustomerCtrlMixin', function($scope, $modal, $controller, $q) {\n\n  // Re-Using the object picker\n  $.extend(self, $controller('ModalObjectPickerCtrlMixin', {$scope: $scope, $modal: $modal}));\n\n  $scope.openCustomerChooser = function(customers /*, options*/) {\n\n    var description = 'Please choose customers you want to perform the operation for:';\n\n    // prepare the callbacks\n    var getImageUrl = function(model) {\n        return 'fa-building';\n    };\n\n    var getDisplayName = function(model) {\n      return model.CustomerName;\n    };\n\n    var getDetailsString = function(model) {\n      return model.CustomerId;\n    };\n\n    return $scope.openObjectPickerDialog('Choose customers', description, getImageUrl, getDisplayName, getDetailsString, customers, []);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspDefineResellerMarginCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspDefineResellerMarginDialog = function(resellerMargin, upliftCategories) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_csp_define_reseller_margin.html\",\n      controller: 'ModalCspDefineResellerMarginCtrl',\n      resolve: {\n        ResellerMargin: function() {\n          return resellerMargin ? resellerMargin : [];\n        },\n        UpliftCategories: function() {\n          return upliftCategories ? upliftCategories : ['*'];\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspDefineResellerFilterCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspDefineResellerFilterDialog = function(existingResellerFilter) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_csp_define_reseller_filter.html\",\n      controller: 'ModalCspDefineResellerFilterCtrl',\n      resolve: {\n        ResellerFilter: function() {\n          return existingResellerFilter ? existingResellerFilter : {};\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspDefineResellerFilterCtrl', function($scope, $modalInstance, ResellerFilter, $eaFilterPanel) {\n\n  $scope.activeFilter = JSON.parse(JSON.stringify(ResellerFilter));\n\n  if (!$scope.activeFilter.Rules) { $scope.activeFilter.Rules = []; }\n\n  $scope.availableFilterFields = $eaFilterPanel.buildFieldModelsFromArray([\n    \"SubscriptionName\" ,\n    \"ServiceName\",\n    \"ServiceCategory\",\n    \"ServiceType\",\n    \"ServiceSize\",\n    \"ServiceCosts\",\n    \"ServiceQuantity\",\n    \"ServiceUnit\",\n    \"Tag\",\n    \"CostCenter\",\n    \"Department\",\n    \"ResourceGroup\"\n  ]);\n\n  $scope.operators = $eaFilterPanel.availableOperations;\n\n  $scope.conditions = $eaFilterPanel.availableConditions;\n\n  $scope.ok = function() {\n\n    // Ask\n    var ok = confirm('Changing the filters outdates all cached reports, when the customer is visiting his portal ' +\n      'the next time it could take a very long time. You can force this process by visiting the portal ' +\n      'in admin on behalf of! Do you really want to change the filters?');\n\n    if (ok) {\n      $modalInstance.close($scope.activeFilter);\n    }\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n  $scope.removeCondition = function(index) {\n    $scope.activeFilter.Rules.splice(index, 1);\n  };\n\n  $scope.addCondition = function() {\n    $scope.activeFilter.Rules.push($eaFilterPanel.buildRule('AND'));\n  }\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspDownloadPriceSheetCtrlMixin', function($scope, $modal, $controller, $q) {\n\n  $scope.openPriceSheetDownload = function(teamId, contractId, currency, region, token) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/model-csp-download-price-sheet.html\",\n      controller: 'ModalCspDownloadPriceSheetCtrl',\n      resolve: {\n        PriceSheetOptions: function() {\n          return {\n            TeamId: teamId,\n            ContractId: contractId,\n            Token: token,\n            Currency: currency,\n            Region: region\n          };\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspDownloadPriceSheetCtrl', function($scope, $modalInstance, $eaBackendAzureCachedContentLoader, PriceSheetOptions, $eaBackendAzureV2, $eaDownload) {\n\n  $scope.priceSheetOptions = {\n    Region: PriceSheetOptions.Region,\n    Locale: 'en-US',\n    RCCurrency: PriceSheetOptions.Currency,\n    Currency: PriceSheetOptions.Currency,\n    ERate: 1.0\n  };\n\n  $scope.step = 0;\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n  $scope.download = function() {\n\n    // set the download mode\n    $scope.step = 1;\n\n\n    // build the options\n    var requestOptions = {\n      resourceEndpoint: $eaBackendAzureV2.dataGetPriceComparisionSheet,\n      queryoptions: {\n        region: $scope.priceSheetOptions.Region,\n        locale: $scope.priceSheetOptions.Locale,\n        currency: $scope.priceSheetOptions.RCCurrency,\n        erate: $scope.priceSheetOptions.ERate\n      }\n    };\n\n    // get the day definition\n    var dayDefinition = (new Date()).currentDayDefinition();\n\n    // load the data\n    $eaBackendAzureCachedContentLoader.dataRequestCachedResourceWithRetry(PriceSheetOptions.TeamId, PriceSheetOptions.ContractId, undefined, dayDefinition, PriceSheetOptions.Token, undefined, false, requestOptions).then(function(content) {\n\n      // offer for download\n      $eaDownload.do(content, 'PriceComparisionSheet.csv', \"text/csv\");\n\n      // move forward\n      $scope.step = 3;\n    })\n  }\n\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspDefineResellerFeaturesCtrlMixin', function($scope, $modal) {\n\n  $scope.openCspDefineResellerFeaturesDialog = function(features, customer, account) {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/csp/modals/modal_ac_csp_define_reseller_features.html\",\n      controller: 'ModalCspDefineResellerFeaturesCtrl',\n      resolve: {\n        Features: function() {\n          return features ? features : {};\n        },\n        Customer: function() {\n          return customer ? customer : {};\n        },\n        Account: function() {\n          return account ? account : {};\n        }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalCspDefineResellerFeaturesCtrl', function($scope, $modalInstance, Customer, Features, Account) {\n\n  $scope.features = JSON.parse(JSON.stringify(Features));\n  $scope.customer = JSON.parse(JSON.stringify(Customer));\n  $scope.account = JSON.parse(JSON.stringify(Account));\n  \n  $scope.ok = function() {\n    $modalInstance.close($scope.features);\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n\n  $scope.isDisabled = function(element) {\n    switch(element)\n    {\n      case \"consumption\":\n        return $scope.isDisabledConsumption();\n      case \"reservation\":\n        return $scope.isDisabledReservation();\n      case \"office\":\n        return $scope.isDisabledOffice();        \n      case \"marketplace\":\n        return $scope.isDisabledMarketplace();                \n      default:\n        return true;    \n    }    \n  }\n\n  $scope.isDisabledConsumption = function() {\n    return $scope.account.TierLevel !== 'V1';    \n  }\n\n  $scope.isDisabledReservation = function() {\n    return $scope.account.TierLevel !== 'T1' && $scope.account.TierLevel !== 'T1N';    \n  }\n\n  $scope.isDisabledOffice = function() {\n    return $scope.account.TierLevel !== 'T1' && $scope.account.TierLevel !== 'T1N';\n  }\n  \n  $scope.isDisabledMarketplace = function() {\n    return true;\n  }\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('AcCspResellerManagementCtrl', function ($scope, $state, $stateParams, $eaCspService, $eaCurrentSession, $busy, $q, $controller, $modal, $toolbar, $eaBackendDataModeSelector, $eaSession2, $eaWidgetDashboardManager, ngToast, $eaBackend, $eaBackendAzureV2, $timeout, $window, $acTimelineGenerator) {\n\n  $.extend(self, $controller('CspResellerRegisterCtrlMixin', {$scope: $scope, $modal: $modal}));\n  $.extend(self, $controller('CspDefineResellerMarginCtrlMixin', {$scope: $scope, $modal: $modal}));\n\n  $scope.dashboardEditMode = false;\n  $scope.activeDashboard = null;\n  $scope.dataToken = $eaCurrentSession.DataToken;\n\n  $scope.toggelEditMode = function() {\n    $scope.dashboardEditMode = !$scope.dashboardEditMode;\n  };\n\n  // update the navbar menu\n  $scope.updateControllerNavBarMenu = function() {\n\n    // Open the contract settings dialog\n    var backUri = $state.href('authorized.csp.accounts', { resellerId: $stateParams.resellerId }, {absolute: true});\n    $toolbar.addItem('csp.reseller.back', 'Back', 'fa-chevron-left', null, true, backUri);\n\n    // Reload operation\n    $toolbar.addItem('csp.reseller.performReload', 'Reload', 'fa-refresh', \"Current data will be refreshed\", true, $scope.reloadData);\n  };\n\n  var dashboardId = 'resellerManagement';\n\n  $scope.activeDashboard = {\n    Id: dashboardId,\n    Profile: $scope.Profile,\n    Team: $scope.Profile.Id,\n    ContractId: 'RESELLER:' + $scope.Profile.Id,\n    Collection: 'reseller.v1',\n    Layout: 'v1'\n  };\n\n  // Action: Register Reseller\n  $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:12F2A20E-B5C7-4615-BDE1-867D31266A50', function (args) {\n\n    $scope.openCspResellerRegisterDialog().then(function(resellerREgistrationResult) {\n\n      // register\n      $busy.setMessage(\"Registering new Reseller...\");\n\n      return $busy.during($eaBackend.dataRegisterCspResellers($scope.Profile.Id, resellerREgistrationResult.account.Name, $eaCurrentSession.DataToken)).then(function() {\n        $scope.reloadData();\n        $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n      }).catch(function(e) {\n        ngToast.danger(\"Error: Failed to register new reseller: \" + e.message);\n        $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, false, e);\n      })\n    })\n  });\n\n  // Action: Visit Reseller Portal\n  $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:75FF743F-21BC-4208-BB05-7AC447A17E19', function(args) {\n\n    // update our login sessiong with a new delegation token\n    return $eaSession2.updateTokenFromSTS($eaCurrentSession, { delegate: args.args.TeamId }).then(function() {\n\n      // build the url\n      var url = $state.href('authorized.csp.accounts', {resellerId: args.args.TeamId }, {absolute: true});\n\n      // open new window with the url\n      $window.open(url, '_blank');\n\n      // we are done with this action\n      return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n    }).catch(function() {\n\n      ngToast.create({\n        className: 'danger',\n        content: '<strong>Permission Denied!</strong> You have no access permissions to open the customer dashboard.'\n      });\n\n      // we are done with this action\n      return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n    })\n  });\n\n  // Action: UnPublish Customer\n  $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:E6F0F729-6374-4A62-81A9-7D26EFE82346', function(args) {\n\n    var deleteOk = confirm('Do you really want to remove the customer from this reseller?');\n    if (deleteOk) {\n\n      return $eaBackend.dataUnPublishCspCustomer($scope.Profile.Id, args.args.ResellerId, args.args.ResellerAccountId, args.args.CustomerId, $eaCurrentSession.DataToken).then(function() {\n        $scope.reloadData();\n        $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n      }).catch(function() {\n        ngToast.create({\n          className: 'danger',\n          content: '<strong>Error!</strong> Failed to remove customer.'\n        });\n\n        // we are done with this action\n        return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n      });\n    } else {\n      // we are done with this action\n      return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n    }\n  });\n\n  // Action: UnPublish All Customers\n  $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:8910991F-B227-4A61-B4FB-3F2C6F69D276', function(args) {\n\n    // no collection give up\n    if (!args.args.Customers) {\n      return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n    }\n\n    // check if we delete the reseller or the customers\n    if (args.args.Customers.length === 1 && args.args.Customers[0].CustomerState === 'pseudo') {\n      var deleteOk = confirm('Do you really want to remove the reseller?');\n      if (deleteOk) {\n        $eaBackend.dataDeleteEmptyCspResellers($scope.Profile.Id, args.args.Customers[0].ResellerId, $eaCurrentSession.DataToken).then(function () {\n          ngToast.create({\n            className: 'success',\n            content: '<strong>Success!</strong> Removed reseller ' + args.args.Customers[0].ResellerName\n          });\n\n          $scope.reloadData();\n        }).catch(function () {\n          ngToast.create({\n            className: 'danger',\n            content: '<strong>Error!</strong> Failed to remove reseller ' + args.args.Customers[0].ResellerName + ', try again later'\n          });\n        });\n      }\n    } else {\n      var deleteOk = confirm('Do you really want to remove all customers from this reseller? This process could take a couple minutes up to hours. After that you can come back to remove the reseller with the same action!');\n      if (deleteOk) {\n        args.args.Customers.forEach(function (customer) {\n\n          $eaBackend.dataUnPublishCspCustomer($scope.Profile.Id, customer.ResellerId, customer.ResellerAccountId, customer.CustomerId, $eaCurrentSession.DataToken).then(function () {\n            ngToast.create({\n              className: 'success',\n              content: '<strong>Success!</strong> Schedule un-publishing of customer ' + customer.CustomerCompany\n            });\n          }).catch(function () {\n            ngToast.create({\n              className: 'danger',\n              content: '<strong>Error!</strong> Failed to schedule un-publishing of customer ' + customer.CustomerCompany + ', try again later'\n            });\n          });\n        });\n      }\n    }\n\n    return $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, true, null);\n  });\n\n  // Action: Define reseller margins\n  $eaWidgetDashboardManager.onDashboardFunction(dashboardId, 'func:AD35F300-7307-4E33-B69C-E5576CDCDA4D', function (args) {\n\n    // load the uplift categories\n    $eaBackend.dataCspGetUpliftCategories($scope.Profile.Id, $eaCurrentSession.DataToken).then(function(upliftCategories) {\n\n      // load the margins\n      return $eaBackend.dataCspGetResellerMarginForReseller($scope.Profile.Id, args.args.ResellerId, $eaCurrentSession.DataToken).then(function (resellerMargins) {\n\n        // show the dialog\n        return $scope.openCspDefineResellerMarginDialog(resellerMargins, upliftCategories).then(function (updatedMargins) {\n\n          // save the margins\n          return $eaBackend.dataCspSetResellerMarginForReseller($scope.Profile.Id, args.args.ResellerId, updatedMargins, $eaCurrentSession.DataToken).then(function () {\n\n            // we are done with this action\n            $eaWidgetDashboardManager.finishDashboardFunction(dashboardId, args, null, null);\n          });\n        });\n      });\n    });\n  });\n\n  $scope.reloadData = function () {\n    $eaWidgetDashboardManager.reload($scope.activeDashboard.Id);\n  };\n\n  // update the menu navbar\n  $scope.updateControllerNavBarMenu();\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaAdminJobsCtrl', function ($scope, $eaBackendAdminV2, $busy, $eaCurrentSession) {\n\n  $scope.loadJobsDuring = 1;\n  $scope.loadJobsForTeam = \"\";\n\n  function loadJobs(hours, team) {\n    // load the jobs\n    return $eaBackendAdminV2.dataGetJobs(hours, team, $eaCurrentSession.DataToken).then(function (jobs) {\n\n      $scope.error = null;\n\n      $scope.runningJobs = [];\n      $scope.delayedJobs = [];\n      $scope.pendingJobs = [];\n      $scope.otherJobs = [];\n\n      jobs.items.forEach(function(job) {\n\n        // adjust the worker url\n        // acbackgroundstaging.deployment-586477d64d-v8r2m (v2)xx\n        var podName = job.jobWorker.split(' ')[0];\n        job.jobPodUri = 'http://127.0.0.1:8001/#!/log/default/' + podName + '/pod?namespace=default';\n                         \n        // adjust the status\n        if (job.jobStatus === 'running') {\n          $scope.runningJobs.push(job);\n        } else if (job.jobStatus === 'delayed') {\n          $scope.delayedJobs.push(job);\n        } else if (job.jobStatus === 'pending') {\n          $scope.pendingJobs.push(job);\n        } else {\n          $scope.otherJobs.push(job);\n        }\n      })\n    });\n  }\n\n  $scope.jobMoment = function(job) {\n    return moment(job.jobStarted).fromNow();\n  };\n\n  $scope.jobDuration = function(job) {\n    return job.jobDuration + ' seconds';\n  };\n\n  $scope.onReload(function() {\n    $scope.reloadJobs();\n  });\n\n  $scope.reloadJobs = function() {\n    $busy.during(loadJobs($scope.loadJobsDuring, $scope.loadJobsForTeam));\n  };\n\n  // init all\n  $scope.updateNavBar();\n  $scope.reloadJobs();\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalAdminAddUserCtrl', function($scope, $modalInstance) {\n\n  $scope.newUser= {\n    upn: undefined\n  };\n\n  $scope.ok = function () {\n    $modalInstance.close({ user: $scope.newUser});\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\");\n  };\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('CspResellerRegisterCtrl', function($scope, $modalInstance) {\n\n  $scope.resellerAccountModel = { Name: undefined };\n\n  $scope.ok = function () {\n    $modalInstance.close({ account: $scope.resellerAccountModel, action: 'new' });\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss(\"cancel\")\n  };\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaAdminCtrl', function ($scope, $busy, $eaCurrentSession, $toolbar, $eaBackendAdmin) {\n\n  // reset the error\n  $scope.error = null;\n\n  $scope.serviceProviderDefault = {\n    Id: 'default',\n    Name: 'Default'\n  };\n\n  $scope.serviceProvider = $scope.serviceProviderDefault;\n\n  $scope.serviceProviders = [];\n\n  $scope.updateNavBar = function() {\n\n    // configure the toolbar\n    $toolbar.addItem('admin.back', 'Back', 'fa-chevron-left', null, true, '/signin');\n\n    if ($scope.authorizedAsAdmin) {\n\n      $toolbar.addItem('admin.providers', $scope.serviceProvider ? $scope.serviceProvider.Name : 'Default', 'fa-globe', 'Active Service Provider', true, null);\n\n      $scope.serviceProviders.forEach(function(provider) {\n        $toolbar.addItem('admin.providers.' + provider.Id, provider.Name, 'fa-globe', provider.Name, true, $scope.switchServiceProviderCallback(provider), null, 'admin.providers');\n      });\n\n      $toolbar.addItem('admin.contracts', 'Contracts', 'fa-book', 'Shows all contracts in the system', true, '/admin/contracts');\n      $toolbar.addItem('admin.users', 'Users', 'fa-users', 'Shows all users in the system', true, '/admin/users');\n      $toolbar.addItem('admin.jobs', 'Jobs', 'fa-tasks', 'Shows all jobs in the system', true, '/admin/jobs');\n\n      $toolbar.addItem('admin.performReload', 'Reload', 'fa-refresh', \"Current data will be refreshed\", true, $scope.reloadData);\n    }\n  };\n\n  // check if we have ops permission\n  $scope.authorizedAsAdmin = $eaCurrentSession.hasClaim('ops');\n\n  // udpate the navbar\n  $eaBackendAdmin.dataGetServiceProviders($eaCurrentSession.DataToken).then(function(providers) {\n\n    $scope.serviceProviders = providers;\n    $scope.serviceProviders.push($scope.serviceProviderDefault);\n    $scope.updateNavBar();\n  });\n\n  var reloadOperation = null;\n  $scope.onReload = function(cb) {\n    reloadOperation = cb;\n  };\n\n  $scope.reloadData = function() {\n    if (reloadOperation) {reloadOperation();}\n  };\n\n  $scope.switchServiceProviderCallback = function(targetServiceProvider) {\n    return function() {\n      $scope.serviceProvider = targetServiceProvider;\n      $scope.updateNavBar();\n      $scope.reloadData();\n    }\n  }\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaAdminContractsCtrl', function ($controller, $scope, $rootScope, $stateParams, $eaBackendAdmin, $busy, $modal, $q, jwtHelper, $eaCurrentSession) {\n\n  function loadStats() {\n    return $eaBackendAdmin.dataGetSpendingStats($scope.serviceProvider.Id, $eaCurrentSession.DataToken).then(function (stats) {\n      $scope.error = null;\n      $scope.orderByField = 'Enrollment';\n      $scope.reverseSort = false;\n      $scope.spendingStats = stats;\n\n\n      // calculate the sums\n      $scope.spendingKeys = [];\n      $scope.spendingSumsAll = {};\n      $scope.spendingSumsLastYear = {};\n      $scope.spendingSumsLastMonth = {};\n\n      $scope.spendingStats.forEach(function (stat) {\n        if ($scope.spendingSumsAll[stat.Currency] === undefined) {\n          $scope.spendingSumsAll[stat.Currency] = 0;\n          $scope.spendingKeys.push(stat.Currency)\n        }\n        if (!$scope.spendingSumsLastYear[stat.Currency]) {\n          $scope.spendingSumsLastYear[stat.Currency] = 0;\n        }\n        if (!$scope.spendingSumsLastMonth[stat.Currency]) {\n          $scope.spendingSumsLastMonth[stat.Currency] = 0;\n        }\n\n        $scope.spendingSumsAll[stat.Currency] += stat.Spendings.all;\n        $scope.spendingSumsLastYear[stat.Currency] += stat.Spendings.lastYear;\n        $scope.spendingSumsLastMonth[stat.Currency] += stat.Spendings.lastMonth;\n      });\n\n    })\n  }\n\n  $scope.updateNavBar();\n\n  $scope.verifyToken = function(token) {\n    if (token === 'app-only') {\n      return true;\n    } else {\n      try {\n        return !jwtHelper.isTokenExpired(token);\n      } catch(error) {\n        return false;\n      }\n    }\n  };\n\n  $scope.syncCurrentMonth = function(teamId, userId, contract) {\n    var currentMonthDefinition = (new Date()).currentMonthDefinition();\n\n    var promise = null;\n\n    if (teamId === 'personal') {\n      promise = $eaBackendAdmin.dataPutPersonalContractsSyncMonth($scope.serviceProvider.Id, userId, contract, currentMonthDefinition, $eaCurrentSession.DataToken);\n    } else {\n      promise = $eaBackendAdmin.dataPutTeamContractsSyncMonth($scope.serviceProvider.Id, teamId, contract, currentMonthDefinition, $eaCurrentSession.DataToken);\n    }\n\n    // check promise\n    promise.then(function() {\n      alert(\"Sync triggered\");\n    })\n  };\n\n  $scope.syncAll = function(teamId, userId, contract) {\n    var currentMonthDefinition = (new Date()).currentMonthDefinition();\n\n    var promise = null;\n\n    if (teamId === 'personal') {\n      promise = $eaBackendAdmin.dataPutPersonalContractsSync($scope.serviceProvider.Id, userId, contract, $eaCurrentSession.DataToken);\n    } else {\n      promise = $eaBackendAdmin.dataPutTeamContractsSync($scope.serviceProvider.Id, teamId, contract, $eaCurrentSession.DataToken);\n    }\n\n    // check promise\n    promise.then(function() {\n      alert(\"Sync triggered\");\n    })\n  };\n\n  $scope.deleteUsageData = function(teamId, userId, contract) {\n    if (confirm('Do you realy want to remove the usage data of contract' + contract + '?')) {\n      var promise = null;\n\n      if (teamId === 'personal') {\n        promise = $eaBackendAdmin.dataDeletePersonalContractsReports($scope.serviceProvider.Id, userId, contract, $eaCurrentSession.DataToken);\n      } else {\n        promise = $eaBackendAdmin.dataDeleteTeamContractsReports($scope.serviceProvider.Id, teamId, contract, $eaCurrentSession.DataToken);\n      }\n\n      // check promise\n      promise.then(function() {\n        alert(\"Delete Contract triggered\");\n      })\n    }\n  };\n\n  $scope.onReload(function() {\n    $busy.during(loadStats());\n  });\n\n  $busy.during(loadStats());\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaAdminUsersCtrl', function ($scope, $eaBackendAdmin, $busy, $eaCurrentSession, $eaSession2, $window, $controller, $modal, $eaBackendAdminV2) {\n  $.extend(self, $controller('ModalAdminAddUserCtrlMixin', {$scope: $scope, $modal: $modal}));\n\n  function loadUsers() {\n    // load the users\n    return $eaBackendAdmin.dataGetUsers($scope.serviceProvider.Id, $eaCurrentSession.DataToken).then(function (users) {\n\n      // adapt the last login date and the state\n      users.forEach(function(user) {\n\n        // adapt the last login\n        if (user.LastLogin === null) {\n          user.LastLogin = '1970-01-01T00:00:00';\n        }\n\n        // adapt the status\n        if (user.UserId.indexOf('PSEUDO') === 0) {\n          user.Status = 'pending';\n        } else {\n          user.Status = 'active';\n        }\n      });\n\n      $scope.error = null;\n      $scope.orderByField = 'SignUp';\n      $scope.reverseSort = true;\n      $scope.users = users;\n    });\n  }\n\n  $scope.updateNavBar();\n\n  $busy.during(loadUsers());\n\n  $scope.onReload(function() {\n    $busy.during(loadUsers());\n  });\n\n\n  $scope.removeUser = function(user) {\n    var deleteOk = confirm(\"Do you really want to remove user: \" + user.FirstName + ' ' + user.LastName);\n\n    if (deleteOk) {\n\n      // delete contract\n      $busy.during($eaBackendAdmin.dataDeleteUser($scope.serviceProvider.Id, user.UserId, $eaCurrentSession.DataToken).finally(function() {\n\n        // remove from array\n        var idx = $scope.users.indexOf(user);\n        if (idx !== -1) {\n          $scope.users.splice(idx, 1);\n        }\n\n      }));\n    }\n  };\n\n  $scope.actAsUser = function(user) {\n    var actAsOk = confirm(\"Do you really want to switch to user: \" + user.FirstName + ' ' + user.LastName + ' (' + user.Contact + ')');\n    if (actAsOk) { $eaSession2.openActAsSession(user.UserId, $scope.serviceProvider.Id); }\n  };\n\n  $scope.addNewUser = function() {\n    $scope.openAddNewUser().then(function (result) {      \n      $eaBackendAdminV2.dataInviteUser(result.user.upn, $eaCurrentSession.DataToken).then(function() {\n        $busy.during(loadUsers());\n      })      \n    })\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaAdminJobsDetailsCtrl', function ($scope, $state, $eaBackendAdminV2, $busy, $eaCurrentSession, $base64, $eaConfig) {\n\n  function loadEntries() {\n\n    // generate one out if the month\n    var jobPartitionHash = $state.params.jobpartition;\n\n    // TestLogs202102WebJobsLogEntries/e971ab61-be79-4652-8cd6-dfd18be613d3\n\n    if ($state.params.jobmonth) {\n      jobPartitionHash =  $base64.encode(($eaConfig.envType === 'production' ? 'ProdLogs' : 'TestLogs') + $state.params.jobmonth + 'WebJobsLogEntries/' + $state.params.jobpartition);\n    }\n\n    // load the jobs\n    return $eaBackendAdminV2.dataGetJobEntries(jobPartitionHash, $eaCurrentSession.DataToken).then(function (entries) {\n      $scope.error = null;\n      $scope.entries = entries;\n    });\n  }\n\n  $scope.onReload(function() {\n    $busy.during(loadEntries());\n  });\n\n  // init all\n  $scope.updateNavBar();\n  $busy.during(loadEntries());\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalAdminAddUserCtrlMixin', function($scope, $modal) {\n\n  $scope.openAddNewUser = function() {\n\n    var modalInstance = $modal.open({\n      templateUrl: \"views/admin/modals/model_admin_add_user.html\",\n      controller: 'ModalAdminAddUserCtrl'\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaContentCentered', function() {\n  return {\n    restrict: 'C',\n    template: '<div style=\"display: table; height: 100%; width: 100%;\"><div style=\"display: table-cell; vertical-align: middle;\"><ng-transclude></ng-transclude></div></div>',\n    transclude: true\n  };\n});\n","'use strict';\n\n/*\n * This service just contains general settings which can be used from teh data sources.\n */\nangular.module('azureCostsFeApp').service('$acChartContainerHelpers', function($q) {\n  var self = this;\n\n  self.waitUntilChartContainerExists = function(containerId, defer) {\n    defer = defer ? defer : $q.defer();\n\n    var checkExist = setInterval(function() {\n      if ($('div#' + containerId).length) {\n        clearInterval(checkExist);\n        defer.resolve();\n      } else {\n        self.waitUntilChartContainerExists(containerId, defer);\n      }\n    }, 100); // check every 100ms\n\n    return defer.promise;\n  };\n});\n","angular.module('azureCostsFeApp').directive('acChartRaw', function() {\n  return {\n    restrict: 'C',\n    template: '<div id=\\\"chart-container-{{uuid}}\\\"></div>',\n    controller: 'AcChartRawCtrl',\n    scope: {\n      uuid: '=',\n      configureCallback: '=',\n      dataCallback: '=',\n      buildChartCallback: '='\n    }\n  };\n}).controller('AcChartRawCtrl', function($scope, $rootScope, $eaChartConfig, $acChartContainerHelpers, $q, $timeout) {\n\n  // placeholder for the chart object as self\n  $scope.chartElement = null;\n\n  // define the chart container id\n  $scope.chartContainerId = 'chart-container-' + $scope.uuid;\n\n  function generateDiagram() {\n\n    // build the diagram\n    var areaOptions = $eaChartConfig.createAreaConfig();\n    areaOptions.chart.renderTo = $scope.chartContainerId;\n\n    // set some defaults to prevent crashes\n    areaOptions.tooltip.enabled = false;\n    areaOptions.yAxis.labels.enabled = false;\n    areaOptions.xAxis.labels.enabled = false;\n\n    // add the data elements\n    var dataCallbackPromise = $q.when([]);\n    if ($scope.dataCallback) { dataCallbackPromise = $q.when($scope.dataCallback(areaOptions.series)); }\n    dataCallbackPromise.then(function () {\n\n      // configure the chart\n      var configCallbackPromise = $q.when([]);\n      if ($scope.configureCallback) { configCallbackPromise = $q.when($scope.configureCallback(areaOptions)); }\n      return configCallbackPromise.then(function() {\n\n        // render the diagram\n        $timeout(function() {\n          $scope.chartElement = new Highcharts.Chart(areaOptions);\n          if ($scope.buildChartCallback) {\n            $scope.buildChartCallback($scope.chartElement);\n          }\n        }, 100);\n      });\n    });\n  }\n\n  // wait for a build request\n  $rootScope.$on('build-chart-' + $scope.uuid, function() {\n    // wait for the container\n    return $acChartContainerHelpers.waitUntilChartContainerExists($scope.chartContainerId).then(function() {\n      generateDiagram();\n    });\n  });\n\n});\n","/*\n * The elements section needs to have the following structure\n *\n * [\n *  {\n *    \"XXX\": \"Label\",\n *    \"ZZZ\": \"Value\"\n *  }\n * ]\n *\n * The property value-field-name defines the field which contains the value of the series. The property\n * label-field-name defines the name which is used in the legend.\n */\nangular.module('azureCostsFeApp').directive('acChartArea', function() {\n  return {\n    restrict: 'C',\n    template: '',\n    controller: 'AcChartAreaCtrl',\n    scope: {\n      uuid: '=',\n      elements: '=',\n      valueFieldName: '=',\n      labelFieldName: '=',\n      options: '='\n    }\n  };\n}).controller('AcChartAreaCtrl', function($scope, $eaChartConfig, $element) {\n\n  // placeholder for the chart object as self\n  $scope.chartElement = null;\n\n  // define the chart container id\n  $scope.chartContainerId = 'chart-container-' + $scope.uuid;\n\n  // replace the id if necessary\n  if ($element[0].id === null || $element[0].id === undefined || $element[0].id === '') {\n    $element[0].id = $scope.chartContainerId;\n  } else {\n    $scope.chartContainerId = $element[0].id;\n  }\n\n  function generateDiagram() {\n    // generate the series\n    var series = $scope.elements.map(function(element) {\n      return { name: element[$scope.labelFieldName], y: element[$scope.valueFieldName]};\n    });\n\n    // build the diagram\n    var areaOptions = $eaChartConfig.createAreaConfig();\n    areaOptions.chart.renderTo = $scope.chartContainerId;\n    areaOptions.series.push({ data: series});\n\n    if ($scope.options && $scope.options.ToolTipTemplate) { areaOptions.tooltip.pointFormat = $scope.options.ToolTipTemplate; }\n\n    // y-Axis\n    if ($scope.options && $scope.options.YAxisTemplate) {\n      areaOptions.yAxis.labels.enabled = true;\n\n      if (angular.isFunction($scope.options.YAxisTemplate)) {\n        areaOptions.yAxis.labels.formatter= $scope.options.YAxisTemplate;\n      } else {\n        areaOptions.yAxis.labels.format = $scope.options.YAxisTemplate;\n      }\n    }\n\n    // x-Axis\n    if ($scope.options && $scope.options.XAxisTemplate) {\n      areaOptions.xAxis.labels.enabled = true;\n\n      if (angular.isFunction($scope.options.XAxisTemplate)) {\n        areaOptions.xAxis.labels.formatter= $scope.options.XAxisTemplate;\n      } else {\n        areaOptions.xAxis.labels.format = $scope.options.XAxisTemplate;\n      }\n    }\n\n    areaOptions.xAxis.allowDecimals = false;\n\n    $scope.chartElement = new Highcharts.Chart(areaOptions);\n  }\n\n  $scope.$watch('elements', function() {\n    if ($scope.chartElement) {\n      generateDiagram();\n    }\n  });\n\n  generateDiagram();\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaNotificationCenter', function () {\n  return {\n    template: '<iframe ng-if=\"!notificationCenterRunningLocal\" src=\"{{shownotificationspanelhref}}\"></iframe>' +\n                '<div ng-if=\"notificationCenterRunningLocal\" style=\"text-align: center\">' +\n                  '<h1>Running local!</h1>\\n' +\n                  '<p>The Notifications Center is only available in a production ready environment</p>' +\n                '</div>',\n    restrict: 'C',\n    controller: 'EaNotificationCenterCtrl',\n    scope: true\n  };\n}).controller('EaNotificationCenterCtrl', function($scope) {\n\n}).service('$eaNotificationCenter', function($rootScope, $stateParams, $location) {\n  var self = this;\n\n  self.show = function() {\n\n    $rootScope.notificationCenterRunningLocal = (location.hostname === 'localhost' || location.hostname === '127.0.0.1');\n\n    if (!$rootScope.notificationCenterRunningLocal) {\n\n      if ($stateParams.teamid) {\n        $rootScope.shownotificationspanelhref = '/app2/teams/' + $stateParams.teamid + '/apps/notificationcenter?embedded=1';\n      } else if ($location.path().indexOf('/csp') === 0) {\n        $rootScope.shownotificationspanelhref = '/app2/teams/' + $stateParams.resellerId + '/apps/notificationcenter?embedded=1';\n      }\n    }\n\n    $rootScope.notificationCenterShow = true;\n  };\n\n  self.close = function() {\n    $rootScope.notificationCenterShow = false;\n  };\n\n  self.isOpen = function() {\n    return $rootScope.notificationCenterShow;\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetHost', function($compile) {\n  return {\n    templateUrl: 'views/directive_ea_widget_host.html',\n    controller: 'EaWidgetHostCtrl',\n    restrict: 'C',\n    scope: {\n      widgetFs: '=',\n      widget: '=',\n      dashboard: '=',\n      uuid: '=',\n      title: '=',\n      team: '=',\n      contract: '=',\n      token: '=',\n      options: '=',\n      profiles: '=',\n      cust01: '=',\n      maxPeriods: '='\n    },\n    link: function link(scope, element/*, attrs*/) {\n      var el = $compile('<div ng-show=\\\"!loading\\\" style=\\\"position: relative; height: 100%; width: 100%;\\\" class=\\\"ea-widget-' + scope.widget + ' ea-widget\\\"></div>')(scope);\n      angular.element(element).append(el);\n    }\n  };\n}).controller('EaWidgetHostCtrl', function($scope, $compile, $element, $timeout, $rootScope, $eaWidgetDashboardManager, $q) {\n\n  // set the active mode\n  $scope.active = true;\n\n  // set the loading mode\n  $scope.loading = true;\n  $scope.loadingMessage = undefined;\n\n  // allows to enable and disable the loading mode\n  $scope.setLoading = function(loading) {\n    $scope.loading = loading;\n  };\n\n  $scope.setLoadingMesage = function(message) {\n    $scope.loadingMessage= message;\n  };\n\n  // gives information about the active state\n  $scope.isActive = function() {\n    return $scope.active;\n  };\n\n  // when we navigate the widget should be disabled\n  $rootScope.$on('$stateChangeStart', function() {\n    console.log('Disabling widget ' + $scope.dashboard + '#' + $scope.uuid + ' because of navigation');\n    $scope.active = false;\n  });\n\n  // This triggeres that the widget as self is ready with all things\n  // to establish himself in the infrastructure. At this point no data are loaded at all\n  $scope.finalizeRegistration = function() {\n    $eaWidgetDashboardManager.finishWidgetRegistration($scope.dashboard, $scope.uuid);\n  };\n\n  // Notifies all dependent widgets that the data of this widget has changed\n  $scope.refreshDependentWidgets = function() {\n    $eaWidgetDashboardManager.refreshDependentWidgets($scope.dashboard, $scope.uuid);\n  };\n\n  // Post an action\n  $scope.executeDashboardAction = function(functionId, args) {\n    return $eaWidgetDashboardManager.sendDashboardFunction($scope.dashboard, functionId, args);\n  };\n\n  $scope.toggleState = function(actionProperty, stateKey) {\n    $scope.options.dataItems[actionProperty + 'State'] = stateKey;\n    $eaWidgetDashboardManager.reload($scope.dashboard);\n  };\n\n  $scope.isActiveState = function(actionProperty, stateKey) {\n    return ($scope.options.dataItems[actionProperty + 'State'] === stateKey);\n  };\n\n  $scope.toggleStateFunc = function(action, stateKey) {\n    $scope.options.dataItems[action['actionActive'] + 'State'] = stateKey;\n\n    $scope.executeDashboardAction(action['actionToggle'], { state: stateKey }).then(function(reloadNeeded) {\n      if (reloadNeeded) {\n        $eaWidgetDashboardManager.reload($scope.dashboard);\n      }\n    });\n  };\n\n  $scope.isActiveStateFunc = function(action, stateKey) {\n    return ($scope.options.dataItems[action['actionActive'] + 'State'] === stateKey);\n  };\n\n  // Initializing of widget\n  $scope.onInitialize = function(cb) {\n    $eaWidgetDashboardManager.onWidgetInitialize($scope.dashboard, $scope.uuid, function() {\n\n      // initialize the states\n      var actionInitializers = [];\n\n      // check if we have actions\n      if ($scope.options && $scope.options.periodItems && $scope.options.periodItems.actions) {\n\n        $scope.options.periodItems.actions\n          .filter(function(item) { return item.actionType === 'StateToggleFunc'; })\n          .forEach(function (action) {\n            actionInitializers.push($scope.executeDashboardAction(action['actionActive']).then(function(activeState) {\n              $scope.options.dataItems[action['actionActive'] + 'State'] = activeState;\n              return $q.when();\n            }));\n        });\n      }\n\n      return $q.all(actionInitializers).then(function() {\n        $scope.active = true;\n        return cb();\n      });\n    });\n  };\n\n  $scope.onReload = function(cb) {\n    $eaWidgetDashboardManager.onWidgetReload($scope.dashboard, $scope.uuid, cb);\n  };\n\n  // Resize Handling\n  var resizeCallback = null;\n  $scope.onResize = function(cb) {\n    resizeCallback = cb;\n  };\n\n  $scope.getSize = function () {\n    return { 'h': $element.height(), 'w': $element.width() };\n  };\n\n  $scope.requestResize = function(newValue) {\n\n    // get the newValue\n    if (!newValue) { newValue = $scope.getSize(); }\n\n    // adjust the correct size of the widget as self\n    var widgetElement = angular.element($element).find('div.ea-widget');\n\n    // check how much we need to remove becasue of title\n    var titleHeight = angular.element($element).find('h1.widget-title').height();\n\n    // set the height of the widget element\n    angular.element(widgetElement).height(newValue.h - titleHeight);\n    angular.element(widgetElement).width(newValue.w);\n\n    // check if we need to call the child callback\n    if (resizeCallback) { resizeCallback({ w: newValue.w, h: newValue.h - titleHeight }); }\n  };\n\n  $scope.$watch($scope.getSize, function (newValue/*, oldValue*/) {\n\n    // from the height perspective we take a fixed value\n    if ($scope.widgetFs === true) { newValue.h = window.innerHeight - 115; }\n\n    // request the resize\n    $scope.requestResize(newValue);\n  }, true);\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetDashboard', function () {\n  return {\n    template:\n      '<div ng-show=\"!fullScreenMode\" gridster=\"gridsterOpts\" style=\"background-color: #eeeeee;\">' +\n        '<ul>' +\n          '<li gridster-item=\"item\" ng-repeat=\"item in dashboardItems\" style=\"background: white;\">' +\n            '<div ng-if=\"!fullScreenMode || fullScreenItem.uuid !== item.uuid\" style=\"height: 100%\" class=\"ea-widget-host\"' +\n              'data-widget-fs=\"false\"' +\n              'data-widget=\"item.widget\"' +\n              'data-uuid=\"item.uuid\"' +\n              'data-dashboard=\"$parent.dashboard\"' +\n              'data-title=\"item.title\"' +\n              'data-team=\"$parent.team\"' +\n              'data-contract=\"$parent.contract\"' +\n              'data-token=\"$parent.token\"' +\n              'data-options=\"item.options\"' +\n              'data-profiles=\"item.profiles\"' +\n              'data-cust01=\"cust01\"' +\n              'data-max-periods=\"$parent.maxPeriods\">' +\n            '</div>' +\n            '<div ng-show=\"item.connections && item.connections.length > 0\" class=\"ea-widget-host-connected-flag\"' +\n              'popover-title=\"Connected Widget\" ' +\n              'popover-html-unsafe=\"This widget displays a connected view which will be influenced from an other widget directly.\"' +\n              'popover-trigger=\"mouseenter\" ' +\n              'popover-placement=\"left\"><i class=\"fa fa-flag\"></i>' +\n            '</div>' +\n            '<div ng-show=\"item.wtype && item.wtype === \\'CustomWidget\\' && editMode\" class=\"ea-widget-host-delete-action\">' +\n              '<a href=\"#\" ng-click=\"deleteCustomWidget(item)\"><i class=\"fa fa-trash\"></i></a>' +\n            '</div>' +\n            '<div ng-show=\"item.wtype && item.wtype === \\'CustomWidget\\' && !editMode && item.options && item.options.src\" class=\"ea-widget-host-open-action\">' +\n              '<a href=\"#\" ng-click=\"openCustomWidget(item)\"><i class=\"fa fa-external-link\"></i></a>' +\n            '</div>' +\n            '<div class=\"ea-widget-host-expand-action\">' +\n              '<a href=\"#\" ng-click=\"enterFullScreen(item)\"><i class=\"fa fa-expand\"></i></a>' +\n            '</div>' +\n          '</li>'+\n        '</ul>'+\n      '</div>' +\n      '<div ng-if=\"fullScreenMode\" style=\"position: relative; background-color: #eeeeee; padding: 10px;\">' +\n        '<div style=\"background-color: white;\" class=\"ea-widget-host\"' +\n          'data-widget-fs=\"true\"' +\n          'data-widget=\"fullScreenItem.widget\"' +\n          'data-uuid=\"fullScreenItem.uuid\"' +\n          'data-dashboard=\"dashboard\"' +\n          'data-title=\"fullScreenItem.title\"' +\n          'data-team=\"team\"' +\n          'data-contract=\"contract\"' +\n          'data-token=\"token\"' +\n          'data-options=\"fullScreenItem.options\"' +\n          'data-profiles=\"fullScreenItem.profiles\"' +\n          'data-cust01=\"cust01\"' +\n          'data-max-periods=\"maxPeriods\">' +\n        '</div>' +\n        '<div class=\"ea-widget-host-expand-action\" style=\"top: 10px; right: 20px;\">' +\n          '<a href=\"#\" ng-click=\"leaveFullScreen(fullScreenItem)\"><i class=\"fa fa-compress\"></i></a>' +\n        '</div>' +\n      '</div>',\n    restrict: 'EC',\n    controller: 'EaWidgetDashboardCtrl',\n    scope: {\n      dashboard: '=',\n      team: '=',\n      contract: '=',\n      token: '=',\n      editMode: '=',\n      profile: '=',\n      collection: '=',\n      layout: '=',\n      maxPeriods: '=',\n      cust01: '='\n    }\n  };\n}).controller('EaWidgetDashboardCtrl', function($scope, $rootScope, $eaDataCoordinator, $eaWidgetDashboardManager, $eaWidgetDashboardLayoutManager, $eaBackend, $window) {\n\n  // define the fullscreen mode\n  $scope.fullScreenMode = false;\n  $scope.fullScreenItem = undefined;\n\n  // configure the grid\n  $scope.gridsterOpts = {\n    columns: 12,\n    rowHeight: 120,\n    resizable: {\n      enabled: false\n    },\n    draggable: {\n      enabled: false\n    }\n  };\n\n  // ensure we have an array\n  $scope.dashboardItems = [];\n  $scope.dashboardItemsBackUp = [];\n\n  // initialize the laoyut version for this dashboard\n  if ($scope.layout && $scope.dashboard) {\n    $eaWidgetDashboardLayoutManager.overridLayoutVersion($scope.dashboard, $scope.layout);\n  }\n\n  // initialize the cache hash\n  $eaDataCoordinator.invalidate($scope.profile.cacheHash);\n\n  // establish the rebuild function for a dashboard\n  function rebuild() {\n\n    // register events from our manager service\n    $eaWidgetDashboardManager.onDashboardEvent($scope.dashboard, 'reload', function() {\n\n      // invalidate the cache\n      $eaDataCoordinator.invalidate($scope.profile.cacheHash);\n\n      // send a reload event for every dashboard item\n      $scope.dashboardItems.forEach(function(item) {\n        $eaWidgetDashboardManager.reloadWidget($scope.dashboard, item.uuid);\n      });\n\n    });\n\n    $scope.dashboardItems = [];\n\n    // load the items\n    return $eaWidgetDashboardManager.loadDashboard($scope.dashboard, $scope.team, $scope.contract, $scope.token, $scope.collection).then(function(items) {\n\n      // load the dashboard layout and override it\n      return $eaBackend.dataGetDashboardLayout($scope.team, $scope.dashboard, $scope.collection, $scope.token).then(function(layoutItems) {\n\n        // override the layout\n        $eaWidgetDashboardLayoutManager.overrideDashboardLayout($scope.dashboard, layoutItems.items);\n\n        // apply the layout\n        $eaWidgetDashboardLayoutManager.extendLayout($scope.dashboard, items);\n\n        // done\n        $scope.dashboardItems = items;\n        Array.prototype.push.apply($scope.dashboardItemsBackUp, items);\n      });\n    });\n  }\n\n  // register events from our manager service\n  $eaWidgetDashboardManager.onDashboardEvent($scope.dashboard, 'rebuild', function() {\n    rebuild();\n  });\n\n\n  $scope.$watch('editMode', function(newValue, oldValue) {\n\n    $scope.gridsterOpts.resizable.enabled = $scope.editMode;\n    $scope.gridsterOpts.draggable.enabled = $scope.editMode;\n\n    if ($scope.editMode === false && newValue !== oldValue && oldValue === true) {\n      // store the layout to server\n      var items = $eaWidgetDashboardLayoutManager.getDashboardLayout($scope.dashboard);\n      $eaBackend.dataPostDashboardLayout($scope.team, $scope.dashboard, $scope.collection, items, $scope.token);\n    }\n\n  });\n\n  $scope.$watch('dashboard', function() {\n    rebuild();\n  });\n\n  $scope.$watch('profile', function() {\n    $eaDataCoordinator.invalidate($scope.profile.cacheHash);\n  });\n\n  // Check when the user moves the tiles around\n  $scope.$watch('dashboardItems', function(items){\n    if (items.length === 0) { return; }\n    $eaWidgetDashboardLayoutManager.storeLayout($scope.dashboard, items);\n  }, true);\n\n  // Show on item in fullscreen mode\n  $scope.enterFullScreen = function(item) {\n    $scope.fullScreenItem = item;\n    $scope.fullScreenMode = true;\n  };\n\n  $scope.leaveFullScreen = function(/* item */) {\n    // leave full screen mode\n    $scope.fullScreenMode = false;\n    $scope.fullScreenItem = undefined;\n\n    // rebuild charts\n    rebuild();\n  };\n\n  $scope.deleteCustomWidget = function(item) {\n    return $eaDataCoordinator.deleteModel($scope.team, $scope.contract, $scope.token, 'DashboardItemClass', item, {collection: $scope.collection}).then(function() {\n      // rebuild charts\n      rebuild();\n    });\n  };\n\n  $scope.openCustomWidget = function(item) {\n\n    // adjust the target url for relative uris\n    var targetUri = item.options.src;\n\n    if (item.options.src.indexOf('http') !== 0) {\n      targetUri = item.options.src.split('?')[0];\n    }\n\n    // open new window with the url\n    $window.open(targetUri, '_blank');\n\n  }\n\n}).service('$eaWidgetDashboardManager', function($rootScope, $timeout, $q, $eaDataCoordinator, $eaUserProfile, rfc4122) {\n  var self = this;\n\n  var dashboardItemCache = {};\n  var dashboardFunctionCache = {};\n\n  function createDashboardBasedEventName(dashboardId, event) {\n    return 'dashboard.' + dashboardId + '.' + event;\n  }\n\n  function createWidgetBasedEventName(dashboardId, widgetId, event) {\n    return 'dashboard.' + dashboardId + '.widgets.' + widgetId + '.' + event;\n  }\n\n  function lookupDashboardItem(dashboardId, widgetId) {\n    return dashboardItemCache[dashboardId][widgetId];\n  }\n\n  // loads the dashboard items from the datasource\n  self.loadDashboard = function(dashboardId, team, contract, token, collection) {\n\n    // resolve the user profile\n    return $eaUserProfile.load(token).then(function(userProfile) {\n\n      // resolve the team profile\n      var teamProfile = $eaUserProfile.getTeam(userProfile, team);\n\n      // load the dashboard information\n      return $eaDataCoordinator.query(team, contract, token, 'DashboardItemClass', {collection: collection}).then(function(dashboardItems) {\n\n        // store the information\n        dashboardItemCache[dashboardId] = {};\n        dashboardItems.forEach(function(item) {\n          item._internalDashboardState = 0;\n          item._internalDelayedActivations = [];\n          item._internalReferencedBy = [];\n          dashboardItemCache[dashboardId][item.ItemUuid] = item;\n        });\n\n        // convert the widgets\n        return $q.when(dashboardItems.map(function(item) {\n          return {\n            sizeX: item.Size.x, sizeY: item.Size.y, row: item.Position.x, col: item.Position.y,\n            widget: item.ItemType,\n            uuid: item.ItemUuid,\n            title: item.ItemTitle,\n            wtype: item.ItemWidgetType ? item.ItemWidgetType : 'System',\n            options: item.ItemOptions,\n            connections: item.ItemDependencies,\n            profiles: {\n              user: userProfile,\n              team: teamProfile\n            }\n          };\n        }));\n      });\n    });\n  };\n\n  // allow to lookup dashboard item\n  self.findDashboardItem = function(dashboardId, widgetId) {\n    return lookupDashboardItem(dashboardId, widgetId);\n  };\n\n  // allows to reload the data\n  self.reload = function(dashboardId) {\n    $rootScope.$emit(createDashboardBasedEventName(dashboardId, 'reload'));\n  };\n\n  // allows to rebuild the data\n  self.rebuild = function(dashboardId) {\n    $rootScope.$emit(createDashboardBasedEventName(dashboardId, 'rebuild'));\n  };\n\n  self.reloadWidget = function(dashboardId, widgetId) {\n    $rootScope.$emit(createWidgetBasedEventName(dashboardId, widgetId, 'reload'));\n  };\n\n  self.postDashboardEvent = function(dashboardId, eventName, payload) {\n    $rootScope.$emit(createDashboardBasedEventName(dashboardId, eventName), payload);\n  };\n\n  self.onDashboardEvent = function(dashboardId, eventName, cb) {\n    var eventName = createDashboardBasedEventName(dashboardId, eventName);\n    var eventHandlerFunc = $rootScope.$on(eventName, function(event, args) {\n      cb(args);\n    });\n\n    dashboardFunctionCache[eventName] = eventHandlerFunc;\n  };\n\n  self.offDashboardEvent = function(dashboardId, eventName) {\n    var eventName = createDashboardBasedEventName(dashboardId, eventName);\n    var eventHandlerFunc = dashboardFunctionCache[eventName];\n    if (eventHandlerFunc) {\n      eventHandlerFunc();\n      delete dashboardFunctionCache[eventName];\n    }\n  };\n\n  self.sendDashboardFunction = function(dashboardId, functionId, args) {\n    var defer = $q.defer();\n\n    // establish a listener for ack function\n    var sessionAck = 'execute.ack.' + rfc4122.v4();\n    self.onDashboardEvent(dashboardId, sessionAck, function(ackArgs) {\n\n      // unregister listener\n      self.offDashboardEvent(dashboardId, sessionAck);\n\n      // process the result\n      if (ackArgs.success) {\n        return defer.resolve(ackArgs.result);\n      } else {\n        return defer.reject(ackArgs.error);\n      }\n    });\n\n    // send teh event\n    self.postDashboardEvent(dashboardId, 'execute.' + functionId, { func: functionId, ack: sessionAck, args: args});\n\n    // done\n    return defer.promise;\n  };\n\n  self.onDashboardFunction = function(dashboardId, functionId, cb) {\n    return self.onDashboardEvent(dashboardId, 'execute.' + functionId, cb);\n  };\n\n  self.finishDashboardFunction = function(dashboardId, args, result, error) {\n    var payload = {\n      success: error ? false : true,\n      result: result,\n      error: error\n    };\n\n    self.postDashboardEvent(dashboardId, args.ack, payload);\n  };\n\n  self.finishWidgetRegistration = function(dashboardId, widgetId) {\n\n    // log\n    console.log('Processing widget registration: ' + dashboardId + '.' + widgetId);\n\n    // check if all widgets available which are associated with this widget\n    // if not put it on the pending registration list and initialize it later\n    var dashboardItem = lookupDashboardItem(dashboardId, widgetId);\n    if (!dashboardItem) { return; }\n\n    var missingDependencies = [];\n    if (dashboardItem.ItemDependencies && dashboardItem.ItemDependencies.length > 0) {\n\n      // log\n      console.log('Widget has depedencies, checking if we need to delay the activation');\n\n      // check if we have all dependencies loads\n      dashboardItem.ItemDependencies.forEach(function(dependency) {\n        var referencedItem = lookupDashboardItem(dashboardId, dependency);\n        if (!referencedItem ||referencedItem._internalDashboardState === 0) {\n          // log\n          console.log('\\tDependent widget not registered yet: ' + dashboardId + '.' + dependency);\n\n          // register\n          missingDependencies.push(dependency);\n          referencedItem._internalDelayedActivations.push(dashboardItem);\n          referencedItem._internalReferencedBy.push(dashboardItem);\n        }\n      });\n    }\n\n    // put the widget in the list of widget we need to initialize delayed or\n    // jsut initialize it now\n    if (missingDependencies.length === 0 ) {\n\n      // mark the item as initialize\n      dashboardItem._internalDashboardState = 1;\n\n      // init the widget with data\n      $timeout(function() {\n\n        // send the message\n        $rootScope.$emit(createWidgetBasedEventName(dashboardId, widgetId, 'initialize'));\n\n        // try to finish the registration of all delayed activations\n        if (dashboardItem._internalDelayedActivations.length > 0) {\n\n          // log\n          console.log('\\tActivating delayed activations...');\n\n          dashboardItem._internalDelayedActivations.forEach(function(delayedItems) {\n            self.finishWidgetRegistration(dashboardId, delayedItems.ItemUuid);\n          });\n        }\n\n      }, 100);\n    }\n  };\n\n  self.refreshDependentWidgets = function(dashboardId, widgetId) {\n\n    // load the dependent items\n    var dashboardItem = lookupDashboardItem(dashboardId, widgetId);\n    if (!dashboardItem || !dashboardItem._internalReferencedBy || dashboardItem._internalReferencedBy.length === 0) { return; }\n\n    // reload all dependent items\n    dashboardItem._internalReferencedBy.forEach(function(item) {\n      self.reloadWidget(dashboardId, item.ItemUuid);\n    });\n\n  };\n\n  self.onWidgetInitialize = function(dashboardId, widgetId, cb) {\n\n    console.log('Received onWidgetInitialize for ' + dashboardId + '.' + widgetId);\n\n    $rootScope.$on(createWidgetBasedEventName(dashboardId, widgetId, 'initialize'), function() {\n      cb().then(function() {\n        console.log('Finsihed onWidgetInitialize for ' + dashboardId + '.' + widgetId);\n      }).catch(function(error) {\n        console.log('Failed onWidgetInitialize for ' + dashboardId + '.' + widgetId +': ' + error);\n      });\n    });\n  };\n\n  self.onWidgetReload = function(dashboardId, widgetId, cb) {\n    $rootScope.$on(createWidgetBasedEventName(dashboardId, widgetId, 'reload'), cb);\n  };\n\n  self.addCustomWidget = function(dashboardId, team, contract, token, collection, widgetDescription) {\n\n    // inject the custom widget flag\n    widgetDescription.ItemWidgetType = 'CustomWidget';\n\n    // inject the widget into the data source\n    return $eaDataCoordinator.storeModel(team, contract, token, 'DashboardItemClass', widgetDescription, {collection: collection}).then(function() {\n\n      // rebuild the dashboard\n      self.postDashboardEvent(dashboardId, \"rebuild\", null);\n\n      // done\n      return $q.when(widgetDescription);\n    });\n  }\n\n}).service('$eaWidgetDashboardLayoutManager', function() {\n\n  var self = this;\n\n  var layoutSchemeVersion = 'v2';\n  var layoutSchemeOverrides = {};\n\n  function getLayoutSchemeVersion(dashboardId) {\n    if (layoutSchemeOverrides[dashboardId]) {\n      return layoutSchemeOverrides[dashboardId];\n    } else {\n      return layoutSchemeVersion;\n    }\n  }\n\n  self.overridLayoutVersion = function(dashboardId, newVersion) {\n    layoutSchemeOverrides[dashboardId] = newVersion;\n  };\n\n  self.storeLayout = function(dashboardId, dashboardItems) {\n    console.log('Storing dashboard layout for ' + dashboardId);\n\n    // prepare the payload\n    var payload = {};\n    dashboardItems.forEach(function(item) {\n      payload[item.uuid] = { 'sizeX': item.sizeX,'sizeY': item.sizeY, 'row': item.row ,'col': item.col };\n    });\n\n    // store\n    localStorage.setItem(dashboardId + '#' + getLayoutSchemeVersion(dashboardId) + '.layout', JSON.stringify(payload));\n  };\n\n  self.extendLayout = function(dashboardId, dashbordItems) {\n    console.log('Loading dashboard layout for ' + dashboardId);\n\n    // load the layout\n    var layout = localStorage.getItem(dashboardId + '#' + getLayoutSchemeVersion(dashboardId) + '.layout');\n    if (layout) {\n      layout = JSON.parse(layout);\n\n      dashbordItems.forEach(function(item) {\n        angular.extend(item, layout[item.uuid]);\n      });\n    }\n  };\n\n  self.getDashboardLayout = function(dashboardId) {\n\n    // load the layout\n    var layout = localStorage.getItem(dashboardId + '#' + getLayoutSchemeVersion(dashboardId) + '.layout');\n    if (!layout) { return []; }\n\n    // parse\n    layout = JSON.parse(layout);\n\n    // convert into layout items\n    var resultItems = [];\n    Object.keys(layout).forEach(function(el) {\n      resultItems.push(angular.extend(layout[el], { itemId: el }));\n    });\n\n    return resultItems;\n  };\n\n  self.overrideDashboardLayout = function(dashboardId, layoutItems) {\n    // prepare the payload\n    var payload = {};\n    layoutItems.forEach(function(item) {\n      payload[item.itemId] = { 'sizeX': item.sizeX,'sizeY': item.sizeY, 'row': item.row ,'col': item.col };\n    });\n    localStorage.setItem(dashboardId + '#' + getLayoutSchemeVersion(dashboardId) + '.layout', JSON.stringify(payload));\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetRepository', function () {\n  return {\n    templateUrl: 'views/directive_ea_widget_repository.html',\n    restrict: 'C',\n    controller: 'EaWidgetRepositoryCtrl',\n    scope: {\n      dashboard: '=',\n      team: '=',\n      contract: '=',\n      token: '=',\n      collection: '='\n    }\n  };\n}).controller('EaWidgetRepositoryCtrl', function($scope, $eaWidgetRepository, rfc4122, ngToast, $q, $eaBackend) {\n  var self = this;\n\n  $scope.selectedWidget = undefined;\n\n  $scope.formData = {\n    General: {\n      Id: rfc4122.v4(),\n      Title: '',\n      Type: ''\n    },\n\n    IFrame: {\n      Url: ''\n    },\n\n    Report: {\n      Id: '',\n      ShowGridActions: true,\n      GridPageSize: 50,\n      GridMode: 'table',\n      GridPieBy: undefined,\n      GridPieReduce: undefined,\n      GridPieAt: undefined\n    }\n  };\n\n  $scope.reportGridModes = [\n    { id: 'table', name: 'Table'},\n    { id: 'pie', name: 'Pie Chart'}\n  ];\n\n  $scope.reportGridPieOperations = [\n    { id: 'count', name: 'Count'},\n    { id: 'sum', name: 'Sum'},\n    { id: 'min', name: 'Min'},\n    { id: 'max', name: 'Max'},\n    { id: 'avg', name: 'Avg'}\n  ];\n\n  $scope.loadedReports = [];\n\n  function loadReportsFromReportCenter() {\n    return $eaBackend.dataGetReportCenterReportDefinitions($scope.team, $scope.token).then(function(reports) {\n      $scope.loadedReports = reports;\n      return $q.when();\n    })\n  }\n\n  function loadDataForWidgetInRepository(widgetType) {\n    switch(widgetType) {\n      case 'report':\n        return loadReportsFromReportCenter();\n        break;\n      default:\n        return $q.when();\n        break;\n    }\n  }\n\n  $scope.closePanel = function() {\n    $eaWidgetRepository.hideRepository();\n  };\n\n  $scope.selectWidget = function(widgetType) {\n\n    // execute the data loaded for this widget type\n    return loadDataForWidgetInRepository(widgetType).then(function() {\n      $scope.formData.General.Id = rfc4122.v4();\n      $scope.selectedWidget = widgetType;\n    });\n  };\n\n  $scope.cancelForm = function()\n  {\n    $scope.selectedWidget = undefined;\n  };\n\n  $scope.saveWidget = function() {\n\n    // set the correct type\n    $scope.formData.General.Type = $scope.selectedWidget;\n\n    // close the panel\n    $eaWidgetRepository.hideRepository();\n\n    // register the widget\n    return $eaWidgetRepository.registerCustomWidget($scope.dashboard, $scope.team, $scope.contract, $scope.token, $scope.collection, $scope.formData).then(function() {}, function(error) {\n\n      // notify regarding error\n      ngToast.create({\n        className: 'danger',\n        content: '<strong>Error!</strong> Failed to attach widget: <strong>' + error + '</strong>'\n      });\n    })\n  }\n\n\n}).service('$eaWidgetRepository', function($rootScope, $eaWidgetDashboardManager) {\n  var self = this;\n\n  self.showRepository = function() {\n    $rootScope.showWidgetRepository = true;\n  };\n\n  self.hideRepository = function() {\n    $rootScope.showWidgetRepository = false;\n  };\n\n  self.registerCustomWidget = function(dashboardId, teamId, contractId, dataToken, collection, formData) {\n\n    // build a typically widget\n    var widgetDescription = {\n      Size : {\n        x: 4,\n        y: 2\n      },\n      Position : {\n        x: 0,\n        y: 0\n      },\n      ItemType: formData.General.Type,\n      ItemUuid: formData.General.Id,\n      ItemTitle: formData.General.Title,\n      ItemOptions: {\n        collection: collection\n      },\n      ItemDependencies : []\n    };\n\n    // put the specific data into it\n    switch(formData.General.Type) {\n      case 'iframe': {\n        widgetDescription.ItemOptions.src = formData.IFrame.Url;\n        break;\n      }\n      case 'report': {\n        widgetDescription.ItemType = 'iframe';\n        widgetDescription.ItemOptions.src = '/app2/teams/'+  teamId + '/apps/reportcenter/'+  formData.Report.Id + '/show/latest?embedded=1&gridActions=' +  (formData.Report.ShowGridActions ? '1' : '0') + '&gridPageSize=' + formData.Report.GridPageSize;\n\n        if (formData.Report.GridMode && formData.Report.GridMode === 'pie') {\n          widgetDescription.ItemOptions.src += '&gridMode=pie&gridPieBy=' + formData.Report.GridPieBy + '&gridPieReduce=' + formData.Report.GridPieReduce + '&gridPieAt=' + formData.Report.GridPieAt;\n        }\n\n        break;\n      }\n      default:\n        break;\n    }\n\n    return $eaWidgetDashboardManager.addCustomWidget(dashboardId, teamId, contractId, dataToken, collection, widgetDescription);\n  }\n});\n\n","'use strict';\n\n/*\n * This widget is able to render a stacked bar. The widget accepts the following additional options:\n *\n * - title        - The title of the widget\n * - categories   - The property we use to define the categories\n * - series       - The property we use to define the series\n * - value        - The property which will be aggregated in the series group\n * - filter       - Check the general filter documentation\n *\n * The following JSON structure needs to be applied to the dashboards overview\n *\n * options: {\n *    filter: [],\n *    categories: 'spendings.Month',\n *    series:     'spendings.SubscriptionId',\n *    value:      'spendings.Costs'\n * }\n *\n */\nangular.module('azureCostsFeApp').directive('eaWidgetChartStackedBar', function() {\n  return {\n    restrict: 'C',\n    template: '<div id=\\\"chart-container-{{uuid}}\\\"><div ng-show=\"!hasData\" style=\"margine: 10px; text-align: center\"><p style=\"margin: 50px; font-size: 24px; color: lightgray\">Currently no data available</p></div></div>',\n    controller: 'EaWidgetChartStackedBarCtrl'\n  };\n}).controller('EaWidgetChartStackedBarCtrl', function($scope, $timeout, $filter, $interpolate, $eaChartConfig, $eaDataCoordinator, $eaDataGroupOperations, $eaDataAggregateOperations, $eaDataColorThemeGenerator, $acDpnService, $acLocaleService) {\n\n  // store the chart element\n  var chartElement = null;\n  $scope.hasData = false;\n\n  function buildDashboard() {\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    // load the group option we want to use\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.series, null).then(function(groupOption) {\n\n      // check if we are active or not\n      if (!$scope.isActive()) { return; }\n\n      // the series property\n      var seriesProperty = $scope.options.series;\n      if (groupOption) { seriesProperty = groupOption.GroupProperty; }\n\n      // load the data of the specific property by filter\n      return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.class, null).then(function(data) {\n\n        // check if we are active or not\n        if (!$scope.isActive()) { return; }\n\n        // load the categories from the datasource if possible\n        return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.categories, null).then(function (loadedCategories) {\n\n          // check if we are active or not\n          if (!$scope.isActive()) { return; }\n\n          // distinct the category values\n          var categories = [];\n          var categoryProperty = null;\n          if (loadedCategories) {\n            categories = loadedCategories.PeriodsAvailable;\n            categoryProperty = loadedCategories.PeriodProperty;\n          } else {\n            categories = $eaDataAggregateOperations.execute('distinct', data, $scope.options.categories);\n            categoryProperty = $scope.options.categories;\n          }\n\n          // prevent exception\n          if (!categories) { categories = []; }\n\n          var realCategoryCount = categories.length;\n\n          // extend the categories to 12\n          // this is our minimum amount of month we show\n          if (categories.length < 12) {\n            var newCategories = [];\n            for(var i = 0; i < 12 -categories.length; i++) { newCategories.push(' '); }\n            categories.forEach(function(e) { newCategories.push(e); })\n            categories = newCategories;\n          }\n\n          // contains the aggregated values\n          var predictionCategory = [];\n\n          // group by our series attributeand by the categories attributes\n          return $eaDataGroupOperations.groupBy(data, [seriesProperty, categoryProperty]).then(function (groupedData) {\n\n\n            // check if we have data\n            if (!groupedData || Object.keys(groupedData).length === 0) {\n\n              // switch off the loading mode\n              $scope.setLoading(false);\n\n              // done without data\n              return;\n            }\n\n            // define the series\n            var series = [];\n            var seriesHash = {};\n\n            // visit every first level group\n            Object.keys(groupedData).forEach(function (firstLevelGroupsKey) {\n\n              // deifne the series name\n              var seriesname = firstLevelGroupsKey;\n              if (firstLevelGroupsKey === '') { seriesname = 'Without ' + seriesProperty; }\n\n              // build a basic serie for this group\n              var serie = {name: seriesname, display: undefined, type: 'column', data: []};\n\n              // ensure we have the correct amount of elements\n              categories.forEach(function () {\n                serie.data.push(0);\n              });\n\n              // prepare the prediction field\n              if (predictionCategory.length == 0) {\n                categories.forEach(function () {\n                  predictionCategory.push(0);\n                });\n              }\n\n              var firstLevelGroups = groupedData[firstLevelGroupsKey];\n\n              Object.keys(firstLevelGroups).forEach(function (secondLevelGroupKeys) {\n\n                // calculate the values\n                var secondLevelGroup = firstLevelGroups[secondLevelGroupKeys];\n                var aggregateValue = $eaDataAggregateOperations.execute($scope.options.func, secondLevelGroup, $scope.options.value);\n\n                // get the correct index\n                var color = $eaDataColorThemeGenerator.getColorFor($scope.contract + '#' + seriesProperty, seriesname.toLowerCase());\n\n                // $scope.options.displayNameMapper\n                if (secondLevelGroup && secondLevelGroup.length > 0 && $scope.options.displayNameMapper && $scope.options.displayNameMapper[seriesProperty]) {\n                  var displayValue = secondLevelGroup[0][$scope.options.displayNameMapper[seriesProperty]];\n                  serie.display = displayValue ? displayValue : serie.display;\n                } else {\n                  var displayValue = Array.isArray(secondLevelGroup[0][seriesProperty]) ? seriesname : secondLevelGroup[0][seriesProperty];\n                  serie.display = displayValue ? displayValue : serie.display;\n                }\n\n                var categoryIndex = categories.indexOf(secondLevelGroupKeys);\n                serie.data[categoryIndex] = {y: aggregateValue, color: color};\n                predictionCategory[categoryIndex] += aggregateValue;\n              });\n\n              // add the serie\n              series.push(serie);\n              seriesHash[serie.name] = serie;\n            });\n\n            if ($scope.options.prediction && realCategoryCount >= 3) {\n              // calculate the prediction (which is currently the average of the three month before)\n              for (var i = categories.length - 1; i > 2; i--) {\n                predictionCategory[i] = (predictionCategory[i - 1] + predictionCategory[i - 2] + predictionCategory[i - 1] - 3) / 3;\n              }\n\n              // set the first 0 values to 0\n              predictionCategory[0] = null;\n              predictionCategory[1] = null;\n              predictionCategory[2] = null;\n\n              var predictionSeries = {\n                type: 'spline',\n                name: 'Average',\n                display: 'Trend',\n                data: predictionCategory,\n                marker: {\n                  lineWidth: 2,\n                  lineColor: '#F69D4D',\n                  fillColor: 'white'\n                }\n              };\n\n              series.push(predictionSeries);\n              seriesHash[predictionSeries.name] = predictionSeries;\n            }\n\n            // the highcharts container\n            var containerId = 'chart-container-' + $scope.uuid;\n\n            var stackBarOptions = $eaChartConfig.createStackedBarConfig();\n            stackBarOptions.chart.renderTo = containerId;\n\n            stackBarOptions.xAxis.categories = categories;\n            stackBarOptions.series = series;\n\n            var unitExpression = $interpolate($scope.options.unitLegend ? $scope.options.unitLegend : $scope.options.unit);\n            stackBarOptions.yAxis.title.text = unitExpression(data[0]);\n\n            var unitSymbolExpression = $interpolate($scope.options.unit);\n            var unitSymbol = unitSymbolExpression(data[0]);\n\n            // add a tooltip\n            stackBarOptions.tooltip = {\n                enabled: true,\n                formatter: function() {\n                    var serie = seriesHash[this.series.name];\n                    if (!serie) { return \"\"; }\n\n                    var decimalSep = $acLocaleService.getDecimalSeperator();\n\n                    // convert the number\n                    var numberOutPut = $filter('currency')(this.y, '', 4);\n\n                    // do it better\n                    if (decimalSep === ',') {\n                      numberOutPut = numberOutPut.replace(',', 'X');\n                      numberOutPut = numberOutPut.replace('.', ',');\n                      numberOutPut = numberOutPut.replace('X', '.');\n                    }\n\n                    return '<b>' + serie.display + '</b><br/><span>' + numberOutPut + ' ' + unitSymbol + '</span>';\n                }\n            };\n\n            // switch off the loading mode\n            $scope.setLoading(false);\n\n            // Build the bar chart\n            $timeout(function() {\n\n              // check if we are active before painting to prevent exceptions\n              if (!$scope.isActive()) { return; }\n\n              // render the charts\n              chartElement = new Highcharts.Chart(stackBarOptions);\n              $scope.hasData = true;\n\n              // resize the diagram\n              $scope.requestResize();\n\n            }, 100);\n          });\n        });\n      });\n    });\n  }\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n\n    // register operation for processing information\n    $acDpnService.onProcessingItemsChanged(function(items) {\n\n      if (items.length === 1) {\n        $scope.setLoadingMesage('Processing of 1 new or updated report is pending, it takes just a couple seconds...');\n      } else {\n        $scope.setLoadingMesage('Processing of ' + items.length + ' new or updated reports are pending, it takes just a couple seconds...');\n      }\n    });\n\n    $acDpnService.onProcessingFinished(function() {\n      $scope.setLoadingMesage('All reports are processed');\n    });\n\n    // generate the dashboard\n    return buildDashboard();\n  });\n\n\n  // establish the resize callback\n  $scope.onResize(function(newSize) {\n    if ( chartElement) { chartElement.setSize(newSize.w, newSize.h, false); }\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n\n});\n","'use strict';\n\n/*\n * The following JSON structure needs to be applied to the dashboards overview\n *\n * options: {\n *    filter: [],\n *    value: {\n *      property: 'spendings.Costs',\n *      func: 'sum||count||avg',\n *      max: 56575,\n *      min: 0,\n *      stops: [ [ stopValue, color], ... ]\n *    }\n * }\n */\nangular.module('azureCostsFeApp').directive('eaWidgetChartArea', function() {\n  return {\n    restrict: 'C',\n    template: '<div id=\\\"chart-container-{{uuid}}\\\"></div>',\n    controller: 'EaWidgetChartAreaCtrl'\n  };\n}).controller('EaWidgetChartAreaCtrl', function($scope, $eaChartConfig, $eaDataCoordinator, $eaDataAggregateOperations, $eaDataGroupOperations, $acDataSourceWidgetFunctions) {\n\n  // store the chart element\n  var chartElement = null;\n\n  function buildDashboard() {\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n\n    // load the data of the specific property by filter\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.class, {collection: $scope.options.collection, maxPeriods: $scope.maxPeriods}).then(function(data) {\n\n      // check if we are active or not\n      if (!$scope.isActive()) {\n        $scope.setLoading(false);\n        return;\n      }\n\n      // check if we got data\n      if (!data) {\n        $scope.setLoading(false);\n        return;\n      }\n\n      // group by series key\n      return $eaDataGroupOperations.groupBySingleDimension(data, $scope.options.series).then(function (groupedData) {\n\n        // load the series keys\n        var series = [];\n        var allOver = 0;\n\n        $acDataSourceWidgetFunctions.callWidgetFunction($scope.options.seriesValues, $scope).forEach(function(element) {\n\n            // check if we have a value for this group\n            var value = groupedData[element] ? groupedData[element].elements : null;\n            if (value) {\n              var y = $eaDataAggregateOperations.execute($scope.options.func, value, $scope.options.value, allOver);\n              series.push({ name: element, y: y});\n              allOver += $eaDataAggregateOperations.execute('sum', value, $scope.options.value);\n            } else {\n              series.push({ name: '', y: 0});\n            }\n        });\n\n        // unit symbol\n        var unitSymbol = data && data[0] ? data[0][$scope.options.unit] : null;\n        if (!unitSymbol) {\n          unitSymbol = '';\n        }\n\n        // the highcharts container\n        var containerId = 'chart-container-' + $scope.uuid;\n\n        var areaOptions = $eaChartConfig.createAreaConfig();\n        areaOptions.chart.renderTo = containerId;\n        areaOptions.series.push({ data: series});\n        areaOptions.tooltip.pointFormat = $scope.options.valueLabel + ': <b>{point.y:,.2f} ' + unitSymbol + '</b>';\n\n        // check if we are active before painting to prevent exceptions\n        if (!$scope.isActive()) { return; }\n\n        chartElement = new Highcharts.Chart(areaOptions);\n        $scope.requestResize();\n\n        // switch off the loading mode\n        $scope.setLoading(false);\n      });\n    });\n  }\n\n  // establish the resize callback\n  $scope.onResize(function(newSize) {\n    if ( chartElement) { chartElement.setSize(newSize.w, newSize.h, false); }\n  });\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n    return buildDashboard();\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n\n});\n","'use strict';\n\n/*\n * This widget is able to render a gauge by a give property. The value of this property will aggregated with one of the\n * following aggregate function:\n *\n * - sum\n * - count\n * - avg\n *\n * Beside this the widget accepts the following additional options:\n *\n * - title  - The title of the widget\n * - min    - The min value\n * - max    - The max value\n * - stops  - The different stops incl. color codes\n * - filter - Check the general filter documentation\n *\n * The following JSON structure needs to be applied to the dashboards overview\n *\n * options: {\n *    filter: [],\n *    value: {\n *      property: 'spendings.Costs',\n *      func: 'sum||count||avg',\n *      max: 56575,\n *      min: 0,\n *      stops: [ [ stopValue, color], ... ]\n *    }\n * }\n *\n */\nangular.module('azureCostsFeApp').directive('eaWidgetChartGauge', function() {\n  return {\n    restrict: 'C',\n    template: '<div id=\\\"chart-container-{{uuid}}\\\"></div>',\n    controller: 'EaWidgetChartGaugeCtrl'\n  };\n}).controller('EaWidgetChartGaugeCtrl', ['$scope', '$eaChartConfig', '$eaDataCoordinator', '$eaDataAggregateOperations', function($scope, $eaChartConfig, $eaDataCoordinator, $eaDataAggregateOperations) {\n\n  // store the chart element\n  var chartElement = null;\n\n  function buildDashboard() {\n\n    // check if we are active or not\n    if (!$scope.isActive()) { return; }\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    // load the data of the specific property by filter\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.value.class, {maxPeriods: $scope.maxPeriods}).then(function(data) {\n\n      // apply the aggregate function to the data to get the single value\n      var aggregatedValue = $eaDataAggregateOperations.execute($scope.options.value.func, data, $scope.options.value.property);\n\n      // the highcharts container\n      var containerId = 'chart-container-' + $scope.uuid;\n\n      var gaugeOptions = $eaChartConfig.createGaugeConfig();\n      gaugeOptions.chart.renderTo = containerId;\n      gaugeOptions.yAxis.min = $scope.options.value.min;\n      gaugeOptions.yAxis.max = $scope.options.value.max;\n      gaugeOptions.yAxis.stops = $scope.options.value.stops;\n\n      gaugeOptions.series.push({name: $scope.title, data: [aggregatedValue]});\n\n      // check if we are active before painting to prevent exceptions\n      if (!$scope.isActive()) { return; }\n\n      chartElement = new Highcharts.Chart(gaugeOptions);\n      $scope.requestResize();\n\n      // switch off the loading mode\n      $scope.setLoading(false);\n\n    });\n  }\n\n  // establish the resize callback\n  $scope.onResize(function(newSize) {\n    if ( chartElement) { chartElement.setSize(newSize.w, newSize.h, false); }\n  });\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n    return buildDashboard();\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n\n}]);\n","'use strict';\n\n/*\n options: {\n    filter: [],\n    class: 'SpendingEntryClass',\n    group: 'SubscriptionName',\n    value: 'ServiceCosts',\n    func: 'sum',\n    unit: '€'\n }\n*/\nangular.module('azureCostsFeApp').directive('eaWidgetChartPie', function() {\n  return {\n    restrict: 'C',\n    template: '<div id=\\\"chart-container-{{uuid}}\\\"></div>',\n    controller: 'EaWidgetChartPieCtrl'\n  };\n}).controller('EaWidgetChartPieCtrl', function($scope, $eaChartConfig, $eaDataCoordinator, $eaDataGroupOperations, $eaDataAggregateOperations, $eaDataColorThemeGenerator) {\n\n  // store the chart element\n  var chartElement = null;\n  var exitWidget = false;\n\n  function buildDashboard() {\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    // load the data of the specific property by filter\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.class, {maxPeriods: $scope.maxPeriods}).then(function(data) {\n\n      // check if we are active after data log\n      if (!$scope.isActive()) { return; }\n\n      // check if we got data\n      if (!data) { return; }\n\n      // group the elements\n      return $eaDataGroupOperations.groupBySingleDimension(data, $scope.options.group).then(function (groupedData) {\n\n        // the highcharts container\n        var containerId = 'chart-container-' + $scope.uuid;\n\n        // calculate the unit symbol\n        var unitSymbol = $scope.options.unit;\n        if (data.length > 0) {\n\n          unitSymbol = data[0][$scope.options.unit];\n\n          if (!unitSymbol) {\n            unitSymbol = $scope.options.unit;\n          }\n        }\n\n        var pieOptions = $eaChartConfig.createPieConfig();\n        pieOptions.chart.renderTo = containerId;\n        pieOptions.tooltip.pointFormat = $scope.options.valueLabel + ': <b>{point.y:.2f}' + unitSymbol + '</b>'\n\n        pieOptions.series.push({\n          name: 'Value',\n          colorByPoint: true,\n          data: []\n        });\n\n        // aggregate the groups\n        var indexOfBiggestOne = -1;\n        var lastBiggestValue = 0;\n        Object.keys(groupedData).forEach(function(k) {\n\n          var y = $eaDataAggregateOperations.execute($scope.options.func, groupedData[k].elements, $scope.options.value);\n          if (y > lastBiggestValue) {\n            lastBiggestValue = y;\n            indexOfBiggestOne = pieOptions.series[0].data.length;\n          }\n\n          pieOptions.series[0].data.push({\n            name: groupedData[k].name,\n            y: y,\n            color: $eaDataColorThemeGenerator.getColorFor($scope.contract + '#' + $scope.options.group , k)\n          });\n\n        });\n\n        // slice the biggest on e\n        if ( indexOfBiggestOne != -1) {\n          pieOptions.series[0].data[indexOfBiggestOne].sliced = true;\n        }\n\n        // check if we are active before painting to prevent exceptions\n        if (!$scope.isActive()) { return; }\n\n        // build the chart\n        chartElement = new Highcharts.Chart(pieOptions);\n        $scope.requestResize();\n\n        // switch off the loading mode\n        $scope.setLoading(false);\n      })\n    });\n  }\n\n  // establish the resize callback\n  $scope.onResize(function(newSize) {\n    if ( chartElement) { chartElement.setSize(newSize.w, newSize.h, false); }\n  });\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n    return buildDashboard();\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n\n});\n","'use strict';\n\n/*\n * This widget is able to render just a simple value by the following aggregate function:\n *\n * - sum\n * - count\n * - avg\n *\n * Beside this the widget accepts the following additional options:\n *\n * - title  - The title of the widget\n * - filter - Check the general filter documentation\n *\n * The following JSON structure needs to be applied to the dashboards overview\n *\n * options: {\n *    filter: [],\n *    value: {\n *      property: 'spendings.Costs',\n *      func: 'sum||count||avg',\n *      unit: '€'\n *    }\n * }\n *\n */\nangular.module('azureCostsFeApp').directive('eaWidgetSimpleValue', function() {\n  return {\n    restrict: 'C',\n    template: '<div class=\"widget-simple-value\"><p ng-style=\"colorStyle\">{{widgetValue}}&nbsp;{{widgetUnit}}</p></div>',\n    controller: 'EaWidgetSimpleValueCtrl'\n  };\n}).controller('EaWidgetSimpleValueCtrl', function($scope, $eaDataCoordinator, $eaDataAggregateOperations, $eaConfig) {\n\n  // init the value\n  $scope.widgetValue = 0;\n  $scope.widgetUnit = $scope.options.value.unit;\n  $scope.colorStyle = {};\n  $scope.format = $scope.options.value.format || '(0.00 a)';\n\n  // patch the values by config\n  if ($scope.format.indexOf('config.') !== -1) {\n    if ($eaConfig.numberFormat) {\n      $scope.format = $eaConfig.numberFormat;\n    } else {\n      $scope.format = '(0.00 a)';\n    }\n  }\n\n  function buildDashboard() {\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    // load the data of the specific property by filter\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.value.class, {maxPeriods: $scope.maxPeriods, collection: $scope.options.value.collection}).then(function(data) {\n\n      // check if we are active or not\n      if (!$scope.isActive()) { return; }\n\n      // should we have no data just stay loading because it could be a connected datasource\n      if (!data) { return; }\n\n      // if we have data but only a [-1] means no data available\n      if (data && data.length == 1 && data[0] == -1) {\n\n        // mark the no data available text\n        $scope.widgetValue = 'n/a';\n        $scope.widgetUnit = '';\n\n      } else {\n        // apply the aggregate function to the data to get the single value\n        var aggregatedValue = $eaDataAggregateOperations.execute($scope.options.value.func, data, $scope.options.value.property);\n\n        // define the default value\n        var prettyNumberValue = 0.0;\n\n        if (!isNaN(aggregatedValue)) {\n\n          // make the number pretty\n          prettyNumberValue = numeral(aggregatedValue).format($scope.format);\n\n          if ($scope.options.value.colorize) {\n\n            if (aggregatedValue < 0) {\n              $scope.colorStyle = { color: '#b1271b' }\n            } else if (aggregatedValue > 0) {\n              $scope.colorStyle = { color: '#b1cf95' }\n            }\n          }\n        }\n\n        // get teh unit value\n        var unitValue = null;\n        if (data && data[0]) { unitValue = data[0][$scope.options.value.unit]; }\n        if (!unitValue) { unitValue = ''; }\n\n        // apply the value\n        $scope.widgetValue = prettyNumberValue;\n        $scope.widgetUnit = unitValue;\n      }\n\n      // switch off the loading mode\n      $scope.setLoading(false);\n\n    });\n  }\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n    return buildDashboard();\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetActionBoard', function() {\n  return {\n    restrict: 'C',\n    template: '<div class=\"action-board\" id=\\\"action-board-{{uuid}}\\\" style=\"height: calc(100% - 20px); overflow: scroll;\">' +\n      '<ul>' +\n        '<li ng-repeat=\"item in items\">' +\n          '<p class=\"title\" ng-style=\"getStyle(item)\">{{item.Title}}</p>' +\n          '<p class=\"pull-right\">' +\n            '<a ng-repeat=\"action in item.Actions\" class=\"{{getActionStyle(action)}}\" ng-click=\"executeAction(action, item.Element)\" title=\"{{action.Action}}\">' +\n              '<i class=\"fa\" ng-if=\"action.Icon\" ng-class=\"action.Icon\">&nbsp;</i><span ng-if=\"!options.value.actionsAsLinks\">{{action.Action}}</span>' +\n            '</a>' +\n          '</p>' +\n          '<div class=\"clearfix\"></div>' +\n        '</li>' +\n      '</ul>' +\n    '</div>',\n    controller: 'EaWidgetActionBoardCtrl'\n  };\n}).controller('EaWidgetActionBoardCtrl', function($scope, $q, $eaDataCoordinator, $eaDataFilterOperations) {\n\n  // prepare the filter\n  var compiledFilter = $scope.options.value.filter ? $eaDataFilterOperations.compileFilter($scope.options.value.filter) : null;\n\n  // store the items\n  $scope.items = [];\n\n\n  $scope.getActionStyle = function(action) {\n    if ($scope.options.value.actionsAsLinks) {\n      return \"\";\n    } else {\n      return \"btn btn-xs pull-right \" + action.Class;\n    }\n  };\n\n  // filter operation\n  function filter(elements) {\n    if (compiledFilter) {\n      return $eaDataFilterOperations.applyCompiledFilter(elements, compiledFilter);\n    } else {\n      return $q.when(elements);\n    }\n  }\n\n  // build the dashboard\n  function buildDashboard() {\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.value.class, {collection: $scope.options.value.collection}).then(function (elements) {\n\n      return filter(elements).then(function (filteredElements) {\n\n        // map the result\n        $scope.items = filteredElements.map(function (element) {\n\n          var actions = [];\n\n          if ($scope.options.value.actionTitle)\n          {\n            actions.push({ Action: $scope.options.value.actionTitle, Icon: $scope.options.value.actionIcon, Operation: $scope.options.value.actionOperation, Class: 'btn-default'});\n          } else if ($scope.options.value.actions) {\n            $scope.options.value.actions.forEach(function(action) {\n\n              var actionVisible = true;\n\n              if (action && action.actionHideProperty && action.actionHideValue) {                \n                var hideElements = action.actionHideValue.split(',');\n                actionVisible = $scope.cust01 && $scope.cust01[action.actionHideProperty] && hideElements.indexOf($scope.cust01[action.actionHideProperty]) == -1;\n              }\n\n              if (actionVisible) {\n                actions.push({\n                  Action: action.actionTitle,\n                  Icon: action.actionIcon,\n                  Operation: action.actionOperation,\n                  Class: action.actionClass ? action.actionClass : 'btn-default'\n                });\n              }\n            })\n          }\n\n          return {\n            Title: element[$scope.options.value.propertyTitle],\n            Actions: actions,\n            Element: element,\n            Width: $scope.options.value.actionsAsLinks ? 20 * actions.length : 75 * actions.length\n          }\n        });\n\n        // switch off the loading mode\n        $scope.setLoading(false);\n\n        // done\n        return $scope.items;\n      });\n    });\n  }\n\n  $scope.executeAction = function(item, element) {\n    $scope.executeDashboardAction(item.Operation, element).then(function() {\n      buildDashboard();\n    }).catch(function() {\n      alert(\"Failed to perform action\");\n    })\n  };\n\n  // establish the resize callback\n  $scope.onResize(function(newSize) { });\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n    return buildDashboard();\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  $scope.getStyle = function(item) {\n    return { width: 'calc(100% - ' + item.Width + 'px)' } ;\n  };\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetMap', function() {\n  return {\n    restrict: 'C',\n    templateUrl: 'views/directive_ea_widget_map.html',\n    controller: 'EaWidgetMapCtrl'\n  };\n}).controller('EaWidgetMapCtrl', function($scope, $element, $q, $timeout) {\n\n  function buildDashboard() {\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    // switch off the loading mode\n    $scope.setLoading(false);\n\n    // trigger a resize during load\n    $timeout(function() {\n      $scope.requestResize();\n    }, 500);\n\n    // done\n    return $q.when(true);\n  }\n\n  // establish the resize callback\n  $scope.onResize(function(newSize) {\n\n    // find the img element\n    var imgElement = $element.find('img')[0];\n\n    // calc ratio\n    var ratio = imgElement.width / imgElement.height;\n\n    // calc parent ratio\n    var pratio=newSize.w / newSize.h;\n    if (ratio < pratio) {\n      angular.element(imgElement).width(imgElement.width);\n    } else {\n      angular.element(imgElement).width(newSize.w - 20);\n    }\n\n  });\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n    return buildDashboard();\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetWebPart', function() {\n  return {\n    restrict: 'C',\n    template: '<div class=\"web-part\" id=\\\"web-part-{{uuid}}\\\"><div ng-include=\"html\"></div></div>',\n    controller: 'EaWidgetWebPartCtrl'\n  };\n}).controller('EaWidgetWebPartCtrl', function($scope, $q, $eaConfig, $eaDataCoordinator) {\n\n  // get the html path\n  $scope.html = $scope.options.html;\n\n  // replace all variables\n  $scope.html = $scope.html.replace(/\\{\\{data\\}\\}/g,$eaConfig.dataPath);\n\n  // check if we need to replace with cdn\n  if ($eaConfig.cdnEntrypoint && $scope.html[0] === '/') {\n    $scope.html = $eaConfig.cdnEntrypoint + $scope.html\n  }\n\n  function loadWebPart() {\n\n    if ($scope.options.class) {\n\n      // switch on the loading mode\n      $scope.setLoading(true);\n\n      // load the date from source\n      return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.class, {collection: $scope.options.collection}).then(function(data) {\n        $scope.Model = data;\n        $scope.setLoading(false);\n        return $q.when();\n      });\n    } else {\n      $scope.setLoading(false);\n      return $q.when();\n    }\n  }\n\n  $scope.executeAction = function(actionId) {\n    $scope.executeDashboardAction(actionId);\n  };\n\n  $scope.onResize(function(newSize) {\n    return loadWebPart();\n  });\n\n  $scope.onInitialize(function() {\n    return loadWebPart();\n  });\n\n  $scope.onReload(function() {\n    return loadWebPart();\n  });\n\n  $scope.finalizeRegistration();\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListView', function() {\n  return {\n    restrict: 'C',\n    templateUrl: 'views/directive_ea_group_filter_list_view.html',\n    controller: 'EaWidgetGroupFilterListViewCtrl'\n  };\n}).controller('EaWidgetGroupFilterListViewCtrl', function($scope, $q, $controller, $modal, $eaDataCoordinator, $eaBilling, $eaDataItemProcessorChain, $eaDataColorThemeGenerator, $eaWidgetGroupFilterListViewDataSources, $busy, $eaBackend, $eaUserProfile, $eaDataFilterOperations, $eaDataGroupOperations) {\n  var self = this;\n\n  // Mixins\n  $.extend(self, $controller('ModalUpgradePlanCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('ModalCSVDataExportCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('EaWidgetGroupFilterListViewFiltersMixin', {$scope: $scope, $busy: $busy, $eaBackend: $eaBackend, $eaDataCoordinator: $eaDataCoordinator, $q: $q}));\n  $.extend(self, $controller('EaWidgetGroupFilterListViewSortingMixin', {$scope: $scope }));\n  $.extend(self, $controller('EaWidgetGroupFilterListViewExportMixin', {$scope: $scope }));\n\n  // static data\n  var monthNames = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ];\n\n  function applyStatePropery(property, currentState) {\n    if (typeof(property) === 'object') {\n      return property[currentState];\n    } else {\n      return property;\n    }\n  }\n\n  // View Bags\n  function setViewBagsDefault() {\n\n    $scope.groupOptions = [];\n    $scope.groupOption = null;\n    $scope.groupOptionUpgradePlan = {GroupLabel: 'Add more Groups', GroupProperty: 'AddMoreGroups'};\n\n    $scope.availablePeriods = [];\n    $scope.selectedPeriod = null;\n    $scope.selectedPeriodsMulti = {};\n    $scope.selectedPeriodsMultiNormalized = [];\n\n    $scope.periodActions = [];\n\n    $scope.availableFilters = null;\n    $scope.activeFilter = null;\n\n    $scope.rawItems = [];\n    $scope.rawItemsFiltered = [];\n\n    $scope.groupedSpendingData = {};\n    $scope.groupedAllCheckdPeriods = [];\n    $scope.groupedServiceDefinitions = {};\n\n    $scope.buildDashboardDefer = $q.defer();\n\n    $scope.allowExport = !(!$scope.options.dataItems.exportable || $scope.options.dataItems.exportable === undefined);\n    $scope.allowFiltering = false;\n\n    $scope.itemIdProperty = applyStatePropery($scope.options.dataItems.itemId, $scope.options.dataItems.itemIdState);\n    $scope.subitemIdProperty = applyStatePropery($scope.options.dataItems.subItemId, $scope.options.dataItems.subItemIdState);\n    $scope.subitemIconProperty = applyStatePropery($scope.options.dataItems.subItemSymbol, $scope.options.dataItems.subItemSymbolState);\n    $scope.itemCostProperty = applyStatePropery($scope.options.dataItems.property, $scope.options.dataItems.propertyState);\n    $scope.itemQuantityProperty = applyStatePropery($scope.options.dataItems.propertyQuantity, $scope.options.dataItems.propertyQuantityState);\n    $scope.lastSyncDateProperty = $scope.options.dataItems.lastSyncDate;\n    $scope.allowZeroCostItems = applyStatePropery($scope.options.dataItems.enableZeroCostItems, $scope.options.dataItems.enableZeroCostItemsState);\n\n    $scope.userProfile = null;\n\n    $scope.noData = false;\n\n    // handle filtering\n    $scope.availableFilterFields = $scope.options.dataItems.filterProperties || [];\n    $scope.availableFilterFieldMappings = $scope.options.dataItems.filterPropertyMapping || {};\n    $scope.allowFiltering = ($scope.availableFilterFields.length > 0)\n\n    if (!$scope.options.dataItems.filterClass) { $scope.options.dataItems.filterClass = \"SpendingFilterClass\"; }\n  }\n\n  function setGroupOptionsByQueryData() {\n\n    // load the group options\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.groupOptions.class, {collection: $scope.options.groupOptions.collection}).then(function (groupOptions) {\n      $scope.groupOptions = [];\n\n      var injectUpgradePlan = false;\n      groupOptions.forEach(function (groupOption) {\n\n        // check if we need to inject upgrade plan\n        if (groupOption.RequiredPlan && !$eaBilling.hasRequiredPlan($scope.profiles.team.AccountPlan, groupOption.RequiredPlan)) {\n          injectUpgradePlan = true;\n          return;\n        }\n\n        // inject the element\n        $scope.groupOptions.push(groupOption);\n      });\n\n      // inject the upgrade plan if required\n      if (injectUpgradePlan) {\n        $scope.groupOptions.push($scope.groupOptionUpgradePlan);\n      }\n      \n      // remember on the last selected group option\n      var previousSelectedGroupOption = localStorage.getItem($scope.dashboard + \"#\" + $scope.uuid + '.groupoption.selection');\n      if (previousSelectedGroupOption) {\n        try {\n          debugger;\n          $scope.groupOption = JSON.parse(previousSelectedGroupOption);\n        } catch(e) {\n          $scope.groupOption = groupOptions[0];\n        }\n      } else {\n        // pre select the first group\n        $scope.groupOption = groupOptions[0];\n      }\n    });\n  }\n\n  function updateGroupOptionsByDynamicPropertyPrefix() {\n\n    // check if we have at least the professional plan\n    if (!$eaBilling.hasRequiredPlan($scope.profiles.team.AccountPlan, 'professional')) { return $q.when(); }\n    if (!$scope.groupedSpendingData.DynamicGroupOptions) { return $q.when(); }\n\n    // sort the dynamic groups\n    $scope.groupedSpendingData.DynamicGroupOptions.sortOn('GroupLabel');\n\n    // add to the groups\n    $scope.groupedSpendingData.DynamicGroupOptions.forEach(function(go) {\n      $scope.groupOptions.push(go);\n    });\n\n    return $q.when();\n  }\n\n  function updateAvailableFiltersByDynamicPropertyPrefix() {\n\n    // check if we have at least the professional plan\n    if (!$eaBilling.hasRequiredPlan($scope.profiles.team.AccountPlan, 'professional')) { return $q.when(); }\n    if (!$scope.groupedSpendingData.DynamicGroupOptions) { return $q.when(); }\n\n    $scope.groupedSpendingData.DynamicGroupOptions.forEach(function(go) {\n      $scope.availableFilterFields.push(go.GroupProperty);\n    });\n\n    return $q.when();\n  }\n\n  function setAvailablePeriodsByQueryData() {\n\n    if (!$scope.options.periodItems)\n    {\n      $scope.availablePeriods = [];\n      return $q.when();\n    } else {\n      // load the group options\n      return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.periodItems.class, {collection: $scope.options.periodItems.collection, maxPeriods: $scope.maxPeriods}).then(function (periodItems) {\n\n        // define the periods\n        $scope.availablePeriods = periodItems.map(function(p) {\n          return p[$scope.options.periodItems.property];\n        });\n\n        // reduce the available periods if needed\n        if (!$eaBilling.hasRequiredPlan($scope.profiles.team.AccountPlan, 'startup') && $scope.availablePeriods.length > 2) {\n\n          // remove all reports until we have to\n          $scope.availablePeriods.splice(0, $scope.availablePeriods.length - 2)\n        } else if (!$eaBilling.hasRequiredPlan($scope.profiles.team.AccountPlan, 'professional') && $scope.availablePeriods.length > 24) {\n\n          // remove all reports until we have to\n          $scope.availablePeriods.splice(0, $scope.availablePeriods.length - 24)\n        }\n\n        // select the last one per default\n        if ($scope.availablePeriods && $scope.availablePeriods.length > 0) { $scope.selectedPeriod = $scope.availablePeriods[$scope.availablePeriods.length -1]; };\n      });\n    }\n  }\n\n  function loadAvailableFiltersIfPossible() {\n\n    if ($scope.allowFiltering) {\n      // load the available filters\n      return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.dataItems.filterClass, {collection: $scope.options.dataItems.filterCollection}).then(function (dataFilters) {\n\n        // oder the filters\n        if (dataFilters) { dataFilters.sortOn('Name'); }\n\n        // assign the filters\n        $scope.availableFilters = dataFilters;\n\n        // done\n        return $q.resolve();\n      });\n    } else {\n\n      // disable filtering\n      $scope.allowFiltering = true;\n\n      // done\n      return $q.resolve();\n    }\n  }\n\n  function loadServiceDefinitionMetadata() {\n    return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, 'ServiceDefinitionClass', null).then(function (elementMetaData) {\n      return $eaDataGroupOperations.groupBy(elementMetaData, ['ServiceType']).then(function (groupedMetaData) {\n        return groupedMetaData;\n      });\n    });\n  }\n\n  function renderDataByGroupAndPeriod(options) {\n    options = options || {};\n\n    // define the no data values\n    $scope.noData = (!$scope.rawItems || $scope.rawItems.length === 0);\n\n    // set the deferrer pending\n    $scope.buildDashboardDefer = $q.defer();\n\n    // define the group keys\n    var primaryGroupKey   = $scope.groupOption.GroupProperty;\n    var primaryGroupKeyComparition   = $scope.groupOption.Compare || 'CaseSensitive';\n    var secondaryGroupKey = $scope.options.periodItems.property;\n\n    // apply the filter mappings\n    var adaptedFilter = $scope.activeFilter;\n    if ($scope.activeFilter !== undefined && $scope.activeFilter !== null && $scope.availableFilterFieldMappings) {\n      adaptedFilter = JSON.parse(JSON.stringify($scope.activeFilter));\n\n      adaptedFilter.Rules.forEach(function(rule) {\n        if ($scope.availableFilterFieldMappings[rule.Field]) {\n          rule.Field = $scope.availableFilterFieldMappings[rule.Field];\n        }\n      });\n    }\n\n    // build the compiled filter\n    var compiledFilter = $eaDataFilterOperations.compileFilter(adaptedFilter);\n\n    // reset the pre-filtered items\n    $scope.rawItemsFiltered = [];\n\n    // contains all checked groups\n    var allCheckedPeriods = [];\n\n    // add the other selected groups\n    $scope.selectedPeriodsMultiNormalized.forEach(function(checkedPeriod) {\n      allCheckedPeriods.push(checkedPeriod);\n    });\n\n    // add the selectd one if required\n    if (allCheckedPeriods.indexOf($scope.selectedPeriod) === - 1) {\n      allCheckedPeriods.push($scope.selectedPeriod);\n    }\n\n    // generate the processor chain\n    var processorChain = $eaDataItemProcessorChain.createProcesserChain();\n\n    // filter out all element which are not matching our active Filter\n    // and generate indirectly a list of all items filtered\n    processorChain.onVisit(function(item, resultBucket) {\n\n      // check if we have an active filter\n      if (!$scope.activeFilter) { return $eaDataItemProcessorChain.Status.Next; }\n\n      // apply the compiled filter\n      if (compiledFilter(item)) {\n        $scope.rawItemsFiltered.push(item);\n        return $eaDataItemProcessorChain.Status.Next;\n      } else {\n        return $eaDataItemProcessorChain.Status.Skip;\n      }\n    });\n\n    // filter out all elements which are not part of the selected period\n    processorChain.onVisit(function(item, resultBucket) {\n\n      // the item should have at least a cost value\n      if(item[$scope.itemCostProperty] <= 0 && !$scope.allowZeroCostItems) {\n        return $eaDataItemProcessorChain.Status.Skip;\n      }\n\n      // set the detected selectedPeriod\n      if (!resultBucket.DetectedSelectedPeriod ) {\n        resultBucket.DetectedSelectedPeriod = $scope.availablePeriods.length > 0 ? $scope.availablePeriods[0] : '';\n      }\n\n      // check if we have a better one\n      if (item[secondaryGroupKey] > resultBucket.DetectedSelectedPeriod) {\n        resultBucket.DetectedSelectedPeriod = item[secondaryGroupKey];\n      }\n\n      // check if we skip it\n      return (allCheckedPeriods.indexOf(item[secondaryGroupKey]) !== -1) ? $eaDataItemProcessorChain.Status.Next : $eaDataItemProcessorChain.Status.Skip\n    });\n\n    // define the last sync date based on the selected data\n    processorChain.onVisit(function(item, resultBucket) {\n\n      if ($scope.lastSyncDateProperty && item[$scope.lastSyncDateProperty]) {\n        // set the initial value\n        if (!resultBucket.LastSyncDate) {\n          resultBucket.LastSyncDate = item[$scope.lastSyncDateProperty];\n        }\n\n        // check if we need to update\n        if (item[$scope.lastSyncDateProperty] > resultBucket.LastSyncDate) {\n          resultBucket.LastSyncDate = item[$scope.lastSyncDateProperty];\n        }\n      }\n\n      // done\n      return $eaDataItemProcessorChain.Status.Next;\n    });\n\n\n    // build the history used for exports e.g.\n    processorChain.onVisit(function(item, resultBucket) {\n\n      // build the history\n      resultBucket.History = resultBucket.History  || {};\n\n      // the item id\n      var parentItemId = item[$scope.itemIdProperty];\n      var itemId = item[$scope.subitemIdProperty];\n      var itemKey = parentItemId + '-' + itemId;\n\n      // add the serviec item if required\n      if (!resultBucket.History[itemKey]) { resultBucket.History[itemKey] = JSON.parse(JSON.stringify(item)) }\n\n      // add the costs for a specific period\n      resultBucket.History[itemKey][item.ReportId + '-Costs'] = item[$scope.itemCostProperty];\n\n      if ($scope.itemQuantityProperty && item[$scope.itemQuantityProperty]) {\n        resultBucket.History[itemKey][item.ReportId + '-Quantity'] = item[$scope.itemQuantityProperty];\n      } else if (item.ServiceMeters && item.ServicePrimaryMeter) {\n        var meterIndex = item.ServiceMeters.buildIndex(\"Id\") || {};\n        var meterModel = meterIndex[item.ServicePrimaryMeter] || { Quantity: 0.0 };\n        resultBucket.History[itemKey][item.ReportId + '-Quantity'] = meterModel.Quantity;\n      } else {\n        resultBucket.History[itemKey][item.ReportId + '-Quantity'] = 0.0;\n      }\n\n      // done\n      return $eaDataItemProcessorChain.Status.Next;\n    });\n\n    // applies the correct item template\n    processorChain.onVisit(function(item, resultBucket) {\n\n      // set the correct subitem view template\n      if ($scope.options.dataItems.subItemViewTemplate) {\n        item.viewTemplate = $scope.options.dataItems.subItemViewTemplate;\n      } else {\n        item.viewTemplate = 'ea-widget-group-filter-list-view-pg-subitem-default-template';\n      }\n\n      // done\n      return $eaDataItemProcessorChain.Status.Next;\n    });\n\n    // build the dynamic group options\n    processorChain.onVisit(function(item, resultBucket) {\n\n      // check if we defined a specific prefix\n      if (!$scope.options.groupOptions.dynamic) { return $eaDataItemProcessorChain.Status.Next; }\n\n      // generate the dynamic group options\n      if (!resultBucket.DynamicGroupOptions) { resultBucket.DynamicGroupOptions = []; resultBucket.DynamicGroupOptionsMap = {}; }\n\n      // inject the properties\n      Object.keys(item).forEach(function(k) {\n        if (k.indexOf($scope.options.groupOptions.dynamic) !== 0) { return; }\n        if (resultBucket.DynamicGroupOptionsMap[k]) { return; }\n\n        var groupLabel = k.replace($scope.options.groupOptions.dynamic, '');\n        groupLabel = groupLabel.capitalizeFirstLetter();\n\n        var groupOptionModel = {GroupLabel: groupLabel, GroupProperty: k, GroupIcon: 'fa-globe', GroupDescription: $scope.options.groupOptions.dynamicDescription };\n\n        if (!resultBucket.DynamicGroupOptionsMap[k]) {\n          resultBucket.DynamicGroupOptions.push(groupOptionModel);\n          resultBucket.DynamicGroupOptionsMap[k] = groupOptionModel;\n        }\n      });\n\n      // done\n      return $eaDataItemProcessorChain.Status.Next;\n    });\n\n\n      // build the primary and secondary group\n    processorChain.onVisit(function(item, resultBucket) {\n\n      // generate the primary group key values\n      var primaryGroupKeyValues = item[primaryGroupKey];\n      var primaryGroupKeyValuesWasArray = true;\n      if (!angular.isArray(primaryGroupKeyValues)) { primaryGroupKeyValues ? primaryGroupKeyValues = [primaryGroupKeyValues] : primaryGroupKeyValues = []; primaryGroupKeyValuesWasArray = false; }\n\n      // build the secondary group key value\n      var secondaryGroupKeyValue = item[secondaryGroupKey];\n\n      // check if we have group elements for the different pathes\n      resultBucket['All'] = resultBucket['All'] || { ServiceCosts: 0, Count: 0, ServiceItems: [] };\n      resultBucket.PrimaryGroups = resultBucket.PrimaryGroups || {};\n\n      // add the item to the summary group\n      var summaryGroup = resultBucket['All'];\n      summaryGroup.ServiceCosts += item.ServiceCosts;\n      summaryGroup.Count++;\n      summaryGroup.ServiceItems.push(item);\n\n      // inject currency\n      resultBucket.Currency = {\n        Symbol: item[$scope.options.dataItems.currencySymbol],\n        String: item[$scope.options.dataItems.currency]\n      };\n\n      // in the case the group value area is empty we need to assign this item to a special group\n      // call not_set\n      if (primaryGroupKeyValues.length === 0) { primaryGroupKeyValues = ['Without ' + primaryGroupKey]; }\n\n      // visit every primary group key value the item should become part of\n      primaryGroupKeyValues.forEach(function(primaryGroupKeyValue) {\n\n        // check if we need to compare case sensitive or insensitive\n        if (primaryGroupKeyComparition === 'CaseInSensitive') {\n          primaryGroupKeyValue = primaryGroupKeyValue.toLowerCase();\n        }\n\n        // generate the group\n        resultBucket.PrimaryGroups[primaryGroupKeyValue] = resultBucket.PrimaryGroups[primaryGroupKeyValue] || { PrimaryGroupKey: primaryGroupKey, PrimaryGroupId: primaryGroupKeyValue, PrimaryGroupName: undefined, ServiceCosts: 0, Count: 0, SecondaryGroups: {}, ServiceItemsIdentifiers: [], ServiceItems: [] };\n        resultBucket.PrimaryGroups[primaryGroupKeyValue].SecondaryGroups[secondaryGroupKeyValue] = resultBucket.PrimaryGroups[primaryGroupKeyValue].SecondaryGroups[secondaryGroupKeyValue] || { SecondaryGroupId: secondaryGroupKeyValue, SecondaryGroupName: undefined, SecondaryGroupKey: secondaryGroupKey, ServiceCosts: 0, Count: 0, ServiceItemsMap: {}};\n        resultBucket.SecondaryGroupsSummary = resultBucket.SecondaryGroupsSummary || {};\n        resultBucket.SecondaryGroupsSummary[secondaryGroupKeyValue] = resultBucket.SecondaryGroupsSummary[secondaryGroupKeyValue] || { SecondaryGroupId: secondaryGroupKeyValue, SecondaryGroupName: undefined, SecondaryGroupKey: secondaryGroupKey, ServiceCosts: 0, Count: 0 };\n\n        // define the item id\n        var itemIdProperty = $scope.itemIdProperty;\n        var subitemIdProperty = $scope.subitemIdProperty;\n        var itemCostProperty = $scope.itemCostProperty;\n\n        // add the item to his primary group\n        var primaryItemGroup = resultBucket.PrimaryGroups[primaryGroupKeyValue];\n        if (primaryItemGroup.ServiceItemsIdentifiers.indexOf(item[subitemIdProperty]) === -1) {\n          primaryItemGroup.ServiceItemsIdentifiers.push(item[subitemIdProperty]);\n          primaryItemGroup.ServiceItems.push(item);\n        }\n\n        primaryItemGroup.ServiceCosts += item[$scope.options.dataItems.property];\n        primaryItemGroup.Count++;\n\n        // Calculate the primary GroupName\n        var primaryGroupName = item[primaryGroupKey];\n\n        // set in case it is array\n        if (primaryGroupKeyValuesWasArray) {\n          primaryGroupName = primaryGroupKeyValue;\n          primaryGroupName = $scope.options.dataItems.primaryGroupNameMapping[primaryGroupName] || primaryGroupName;\n        }\n\n        // get the mapping\n        if ($scope.options.dataItems.primaryGroupNameMapping && $scope.options.dataItems.primaryGroupNameMapping[primaryGroupKey]) {\n          primaryGroupName = item[$scope.options.dataItems.primaryGroupNameMapping[primaryGroupKey]];\n        }\n\n        // check if we have a value otherwise we are using our fallback\n        if (!primaryGroupName || primaryGroupName.length === 0) {\n          primaryGroupName = primaryGroupKeyValue;\n        }\n\n        // assign the group name\n        primaryItemGroup.PrimaryGroupName = primaryGroupName;\n\n        // add the item to his secondary group\n        var secondaryItemGroup = resultBucket.PrimaryGroups[primaryGroupKeyValue].SecondaryGroups[secondaryGroupKeyValue];\n        var secondaryItemGroupSummary = resultBucket.SecondaryGroupsSummary[secondaryGroupKeyValue];\n\n        secondaryItemGroup.ServiceItemsMap[item[subitemIdProperty]] = item;\n        secondaryItemGroup.ServiceCosts += item[itemCostProperty];\n        secondaryItemGroup.Count++;\n\n        secondaryItemGroupSummary.ServiceCosts += item[itemCostProperty];\n        secondaryItemGroupSummary.Count++;\n\n        // Calculate the secondary GroupName\n        secondaryItemGroup.SecondaryGroupName = item[secondaryGroupKey];\n        secondaryItemGroupSummary.SecondaryGroupName = item[secondaryGroupKey];\n      });\n\n      // done\n      $eaDataItemProcessorChain.Status.Next;\n    });\n\n    // process all the item specific handlers\n    var globalResultBucket = {};\n    processorChain.process($scope.rawItems, globalResultBucket);\n\n    // dump stats\n    console.log(\"Processor Chain Stats:\");\n    globalResultBucket.ChainStats.forEach(function(cs, ci) {\n      console.log('#' + ci + ' c: ' + cs.c + ' t: ' + cs.t + 'ms');\n    });\n\n    // check if we have a new selected period becuase of detection\n    if (options.SetSelectedItemAutomatically && $scope.selectedPeriod != globalResultBucket.DetectedSelectedPeriod) {\n      $scope.selectedPeriod = globalResultBucket.DetectedSelectedPeriod;\n      options.SetSelectedItemAutomatically = false;\n      return renderDataByGroupAndPeriod(options);\n    }\n\n    // check if we have data\n    if (globalResultBucket.PrimaryGroups !== undefined && globalResultBucket.PrimaryGroups !== null) {\n\n      // get the view templates\n      var viewTemplates = $scope.options.dataItems.primaryGroupViewTemplates;\n      if (!viewTemplates) { viewTemplates = {}; }\n\n      // do a bit post processing\n      Object.keys(globalResultBucket.PrimaryGroups).forEach(function (e) {\n\n        // get the primary group\n        var currentPrimaryGroup = globalResultBucket.PrimaryGroups[e];\n\n        // Calculate the color for ever group\n        currentPrimaryGroup.GroupColor = $eaDataColorThemeGenerator.getColorFor($scope.contract + '#' + currentPrimaryGroup.PrimaryGroupKey, currentPrimaryGroup.PrimaryGroupId);\n\n        // add the default view template\n        if (viewTemplates && viewTemplates[currentPrimaryGroup.PrimaryGroupKey]) {\n          currentPrimaryGroup.viewTemplate = viewTemplates[currentPrimaryGroup.PrimaryGroupKey];\n        } else {\n          currentPrimaryGroup.viewTemplate = 'ea-widget-group-filter-list-view-pg-default-template';\n        }\n\n        // convert the promary groups to an array\n        globalResultBucket.PrimaryGroupsList = globalResultBucket.PrimaryGroupsList || [];\n        globalResultBucket.PrimaryGroupsList.push(currentPrimaryGroup);\n\n        // Visit every secondary group summaries\n        var lastSecondaryGroupSummary = undefined;\n        Object.keys(globalResultBucket.SecondaryGroupsSummary).sort().forEach(function (secondaryGroupKeyValue) {\n          if (!lastSecondaryGroupSummary) {\n            lastSecondaryGroupSummary = globalResultBucket.SecondaryGroupsSummary[secondaryGroupKeyValue];\n            lastSecondaryGroupSummary.ServiceCostsDiff = 0;\n            lastSecondaryGroupSummary.ServiceCostsDiffRel = 0;\n            return;\n          }\n\n          // generate the diff\n          var currentSecondaryGroupSummary = globalResultBucket.SecondaryGroupsSummary[secondaryGroupKeyValue];\n          currentSecondaryGroupSummary.ServiceCostsDiff = currentSecondaryGroupSummary.ServiceCosts - lastSecondaryGroupSummary.ServiceCosts;\n          currentSecondaryGroupSummary.ServiceCostsDiffRel = (currentSecondaryGroupSummary.ServiceCosts / lastSecondaryGroupSummary.ServiceCosts) - 1;\n\n          // set the last\n          lastSecondaryGroupSummary = currentSecondaryGroupSummary;\n        });\n\n        // Visit every secondary group\n        var lastSecondaryGroup = undefined;\n        Object.keys(currentPrimaryGroup.SecondaryGroups).sort().forEach(function (secondaryGroupKeyId) {\n          if (!lastSecondaryGroup) {\n            lastSecondaryGroup = currentPrimaryGroup.SecondaryGroups[secondaryGroupKeyId];\n            lastSecondaryGroup.ServiceCostsDiff = 0;\n            lastSecondaryGroup.ServiceCostsDiffRel = 0;\n            return;\n          }\n\n          // generate the diff\n          var currentSecondaryGroup = currentPrimaryGroup.SecondaryGroups[secondaryGroupKeyId];\n          currentSecondaryGroup.ServiceCostsDiff = currentSecondaryGroup.ServiceCosts - lastSecondaryGroup.ServiceCosts;\n          currentSecondaryGroup.ServiceCostsDiffRel = (currentSecondaryGroup.ServiceCosts / lastSecondaryGroup.ServiceCosts) - 1;\n\n          // set the last\n          lastSecondaryGroup = currentSecondaryGroup;\n        });\n      });\n    } else {\n      $scope.noData = true;\n    }\n\n    // assign the used group option\n    globalResultBucket.SelectedGroupOption = $scope.groupOption;\n\n    // set the hinttext\n    if ($scope.options.dataItems.hintText && $scope.options.dataItems.hintText.length > 0)\n    {\n      if ($scope.options.dataItems.hintText.indexOf('func:') === 0) {\n        $scope.executeDashboardAction($scope.options.dataItems.hintText, { groupSepndingData: globalResultBucket, selectedPeriod: $scope.selectedPeriod }).then(function(generatedHintText) {\n          globalResultBucket.HintText = generatedHintText\n        })\n      } else {\n        globalResultBucket.HintText = $scope.options.dataItems.hintText;\n      }\n    }\n\n    // assign the data\n    $scope.groupedSpendingData = globalResultBucket;\n    $scope.groupedAllCheckdPeriods = allCheckedPeriods.sort().reverse();\n\n    // refresh dependent widgets\n    $scope.refreshDependentWidgets();\n\n    // commit the defer\n    $scope.buildDashboardDefer.resolve($scope.groupedSpendingData);\n\n    // return the promise\n    return $scope.buildDashboardDefer.promise;\n  }\n\n  // generate the initial dashboard content\n  function buildDashboard() {\n\n    // enable loading\n    $scope.setLoading(true);\n\n    // set the view bags\n    setViewBagsDefault();\n\n    // get the user profile\n    return $eaUserProfile.load($scope.token).then(function(userProfile) {\n\n      $scope.userProfile = userProfile;\n\n      // load the group options\n      return setGroupOptionsByQueryData().then(function () {\n\n        // load the available periods\n        return setAvailablePeriodsByQueryData().then(function () {\n\n          // load all filters\n          return loadAvailableFiltersIfPossible().then(function () {\n\n            // load the meta data\n            return loadServiceDefinitionMetadata().then(function(groupedMetaData) {\n\n              // set the meta data\n              $scope.groupedServiceDefinitions = groupedMetaData;\n\n              // load the data items\n              return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, $scope.options.dataItems.class, {collection: $scope.options.dataItems.collection}).then(function (dataItems) {\n\n                // set the rawItems\n                $scope.rawItems = dataItems;\n\n                // render the data\n                return renderDataByGroupAndPeriod({SetSelectedItemAutomatically: true}).then(function () {\n\n                  // update the group options in the case we have set dynamic prefix\n                  return updateGroupOptionsByDynamicPropertyPrefix().then(function() {\n\n                    // inject group options in filter fields\n                    return updateAvailableFiltersByDynamicPropertyPrefix().then(function() {\n\n                      // define the actions\n                      $scope.periodActions = [];\n\n\n                      if ($scope.options.periodItems.actions) {\n\n                        $scope.options.periodItems.actions.forEach(function(action) {\n                          var actionVisible = true;\n\n                          if (action && action.actionHideProperty && action.actionHideValue) {      \n                            var hideElements = action.actionHideValue.split(',');                      \n                            actionVisible = $scope.cust01 && $scope.cust01[action.actionHideProperty] && hideElements.indexOf($scope.cust01[action.actionHideProperty]) == -1;\n                          }\n\n                          if (actionVisible) {\n                            $scope.periodActions.push(action);\n                          }\n                        })\n                      }\n\n\n                      // define primary actions\n                      $scope.primaryActions = $scope.options.primaryActions ? $scope.options.primaryActions : [];\n\n                      // done with loading\n                      $scope.setLoading(false);\n                    });\n                  });\n                })\n              });\n            });\n          });\n        });\n      });\n    });\n  }\n\n  // called when selecting a gorup\n  $scope.selectGroupOption = function(selectedGroupOption) {\n\n    if (selectedGroupOption == $scope.groupOptionUpgradePlan) {\n      $scope.openUpgradePlanWizard('startup', $scope.profiles.team, 'Enable Advanced Data Grouping by upgrading to a paid plan or starting your 14 days trial!');\n    } else {\n      $scope.groupOption = selectedGroupOption;\n      localStorage.setItem($scope.dashboard + \"#\" + $scope.uuid + '.groupoption.selection', JSON.stringify(selectedGroupOption));\n      $scope.refreshWidget();\n    }\n  };\n\n  // allows to select a new period\n  $scope.selectPeriod = function(period) {\n    $scope.selectedPeriod = period;\n    $scope.refreshWidget();\n  };\n\n  // we do not allow to expand the items\n  $scope.groupItemExpanded = function (item, open) {\n    if ($scope.options.dataItems.expandable) {\n      item.viewOpen = open;\n    } else {\n      item.viewOpen = false;\n    }\n  };\n\n  // generates the period label\n  $scope.getPeriodLabel = function (period) {\n    if (period === null || period === undefined) { return ''; }\n    if (period.length != 7) { return period; }\n\n    var monthLabelArray = period.split('-');\n    var month = parseInt(monthLabelArray[1]) - 1;\n\n    return monthNames[month] + ' ' + monthLabelArray[0];\n  };\n\n  // generates the pariod label short\n  $scope.getPeriodLabelShort = function (period) {\n    if (period === null || period === undefined) { return ''; }\n    if (period.length != 7) { return period; }\n\n    var monthLabelArray = period.split('-');\n    var month = parseInt(monthLabelArray[1]) - 1;\n\n    return monthNames[month].substr(0,3) + ' ' + monthLabelArray[0];\n  };\n\n  // allows to handle multi select of period groups\n  $scope.changedSelectedPeriodMulti = function() {\n\n    // reset the normalized selection\n    $scope.selectedPeriodsMultiNormalized = [];\n\n    // check if we have the right permissions\n    if ( !$eaBilling.hasRequiredPlan($scope.profiles.team.AccountPlan, 'professional')) {\n\n      // reset all selections\n      $scope.selectedPeriodsMulti = [];\n\n      // show the purchase information\n      $scope.openUpgradePlanWizard('professional', $scope.profiles.team, 'Smart Compare is a feature available starting with the Professional plan. Try it out by upgrading your plan or starting a 14 days trial!');\n\n    } else {\n      // normalize the selected periods\n\n      Object.keys($scope.selectedPeriodsMulti).forEach(function (k) {\n        if ($scope.selectedPeriodsMulti[k]) {\n          $scope.selectedPeriodsMultiNormalized.push(k);\n        }\n      });\n\n      // order\n      $scope.selectedPeriodsMultiNormalized.sort().reverse();\n\n      // do it\n      $scope.refreshWidget();\n    }\n  };\n\n  $scope.calculateCellStyle = function(item, isHeader) {\n    var factor = 0.20;\n    if (item > factor) {\n      return {\n        'background-color': 'rgba(239,55,14,0.6)',\n        'color': 'white',\n        'font-weight': 'bold',\n        'margin-left': isHeader ? '20px' : '10px',\n        'width': '90px',\n        'padding-right': '5px'\n      };\n    } if (item < -1 * factor) {\n      return {\n        'background-color': 'rgba(108,178,4,0.6)',\n        'color': 'white',\n        'font-weight': 'bold',\n        'margin-left': isHeader ? '20px' : '10px',\n        'width': '90px',\n        'padding-right': '5px'\n      };\n    } else {\n      return {\n        'margin-left': isHeader ? '20px' : '10px',\n        'width': '90px',\n        'padding-right': '5px'\n      };\n    }\n  };\n\n  $scope.calculateCostDiffsForService = function(primaryGroup, currentPeriodIndex, serviceIdentifier) {\n\n    // check if we have a chance\n    if ( !$scope.groupedAllCheckdPeriods || $scope.groupedAllCheckdPeriods.length <= 1 || currentPeriodIndex === $scope.groupedAllCheckdPeriods.length - 1) { return 0.0; }\n\n    // get the right groupIds\n    var currentGroupId = $scope.groupedAllCheckdPeriods[currentPeriodIndex];\n    var prevGroupId = $scope.groupedAllCheckdPeriods[currentPeriodIndex + 1];\n\n    // get the group elements for the pre group\n    var currentServiceItemMap = primaryGroup.SecondaryGroups[currentGroupId];\n    var currentService = currentServiceItemMap ? currentServiceItemMap.ServiceItemsMap[serviceIdentifier] : undefined;\n    if (!currentService) { currentService = {}; currentService[$scope.itemCostProperty] = 0.0 };\n\n    var prevServiceItemMap = primaryGroup.SecondaryGroups[prevGroupId];\n    var prevService = prevServiceItemMap ? prevServiceItemMap.ServiceItemsMap[serviceIdentifier] : undefined;\n    if (!prevService) { prevService = {}; prevService[$scope.itemCostProperty] = 0.0 };\n\n    // calculate\n    return (currentService[$scope.itemCostProperty] / prevService[$scope.itemCostProperty]) - 1;\n  };\n\n  $scope.calculateServiceCostsString = function(element) {\n    try {\n      if (!element) {\n        return \"-/-\";\n      } else if (element.ServiceCosts) {\n        return element.ServiceCosts.toFixed(2) + ' ' + $scope.groupedSpendingData.Currency.Symbol;\n      } else if (element[$scope.itemCostProperty]) {\n        return element[$scope.itemCostProperty].toFixed(2) + ' ' + $scope.groupedSpendingData.Currency.Symbol;\n      } else {\n        return '0.00 ' + $scope.groupedSpendingData.Currency.Symbol;\n      }\n    } catch(e) {\n      console.log(\"Error in calculateServiceCostsString\")\n      console.log(e)\n      console.log(element)\n      return '-/-';\n    }\n  };\n\n  $scope.getSubItemTitle = function(item) {\n    var subItemId = $scope.options.dataItems.subItemId;\n    if ($scope.options.dataItems.subItemGroupNameMapping) { subItemId = $scope.options.dataItems.subItemGroupNameMapping[subItemId]; }\n    if (!subItemId) { subItemId = $scope.options.dataItems.subItemId; }\n    return item[subItemId] ? item[subItemId] : item[$scope.options.dataItems.subItemId];\n  };\n\n  $scope.executeAction = function(actionItem) {\n    $scope.executeDashboardAction(actionItem.actionOperation, { data: $scope.groupedSpendingData, period: $scope.selectedPeriod}).then(function() {\n      renderDataByGroupAndPeriod();\n    })\n  };\n\n  // refreshes the widgte content\n  $scope.refreshWidget = function() {\n    renderDataByGroupAndPeriod();\n  };\n\n  // initialize when the host is ready\n  $scope.onInitialize(function() {\n    return buildDashboard();\n  });\n\n  $scope.onReload(function() {\n    return buildDashboard();\n  });\n\n  // register all datasources\n  $eaWidgetGroupFilterListViewDataSources.registerDataSources($scope);\n\n  // if we are here everyhting is ready to laod data\n  $scope.finalizeRegistration();\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgSpendingsSubscriptionTemplate', function() {\n  return {\n    restrict: 'C',\n    template: '<div class=\"subscriptionColorBox\" ng-style=\"{ \\'background-color\\': groupData.GroupColor }\"></div>' +\n    '<div ng-if=\"!pgSpendingsSubscriptionsTemplateScope.allowPrimaryContact\" class=\"subscriptionNameBox\">{{groupData.PrimaryGroupName}}</div>' +\n    '<div ng-if=\"pgSpendingsSubscriptionsTemplateScope.allowPrimaryContact\" class=\"subscriptionNameBox\">' +\n      '<p style=\"line-height: 13px; padding: 0; margin: 0; margin-top: 3px; margin-bottom: 3px;\">{{groupData.PrimaryGroupName}}</p>' +\n      '<p style=\"font-size: 10px; line-height: 10px; padding: 0; margin: 0;\">' +\n      '  Contacts:&nbsp;' +\n      '  <a ng-repeat=\"groupContact in groupData.Contacts\" href=\"mailto:{{groupContact.Contact}}\"  ng-click=\"$event.stopPropagation();\">{{groupContact.DisplayName}}{{$parent.groupData.Contacts.indexOf(groupContact) === $parent.groupData.Contacts.length - 1 ? \\'&nbsp;\\' : \\',&nbsp;\\'}}</a>' +\n      '  <a href=\"\" ng-click=\"pgSpendingsSubscriptionsTemplate.editPrimaryContacts(groupData)\"><i class=\"fa fa-edit\"></i></a>' +\n      '</p>' +\n    '</div>' +\n    '<div class=\"clearfix\"></div>',\n    scope: false,\n    controller: 'EaWidgetGroupFilterListViewPgSpendingsSubscriptionTemplateCtrl'\n  };\n}).controller('EaWidgetGroupFilterListViewPgSpendingsSubscriptionTemplateCtrl', function($scope, $element, $controller, $modal, $q, gravatarService, $eaDataCoordinator, $eaBackend, $eaSession2, $eaBilling) {\n\n  // include the required mixin\n  $.extend(self, $controller('ModalObjectPickerCtrlMixin', {$scope: $scope, $modal: $modal }));\n  $.extend(self, $controller('TeamManagementCtrlMixin', {$scope: $scope, $eaBackend: $eaBackend, $q: $q, $eaSession2: $eaSession2}));\n\n  $scope.pgSpendingsSubscriptionsTemplateScope = {\n    teamProfileMembers: [],\n    allowPrimaryContact: ($scope.profiles.team.Id !== 'personal' && ($scope.profiles.team.Role == 'admin') && $eaBilling.hasRequiredPlan($scope.profiles.team.AccountPlan, 'enterprise'))\n  };\n\n  // check if we are allows to handle primary contacts\n  if ($scope.pgSpendingsSubscriptionsTemplateScope.allowPrimaryContact) {\n\n    // at this point start loading the group members should we are the admin\n    $eaDataCoordinator.query($scope.team, $scope.contract, $scope.token, 'TeamMembershipEntryClass', null).then(function (teamMembers) {\n\n      // cache\n      $scope.pgSpendingsSubscriptionsTemplateScope.teamProfileMembers = teamMembers;\n\n      // build the teammeber Index\n      var teamMembersIndex = teamMembers.buildIndex('UserId');\n\n      // load all the subscriptions\n      return $eaDataCoordinator.query($scope.team, $scope.contract, $scope.token, 'SubscriptionEntryClass', null).then(function (subscriptions) {\n\n        // build subscription index\n        var subscriptionsIndex = subscriptions.buildIndex('SubscriptionId');\n\n        // get the right contacts\n        var subscription = subscriptionsIndex[$scope.groupData.PrimaryGroupId];\n        if (!subscription) {\n          return;\n        }\n\n        // assign the contacts\n        $scope.groupData.Contacts = subscription.Contacts.map(function (c) {\n\n          var user = teamMembersIndex[c];\n          if (!user) {\n            return {};\n          }\n\n          return {\n            UserId: c,\n            Contact: user.Contact,\n            DisplayName: user.FirstName + ' ' + user.LastName\n          };\n        });\n      })\n    });\n  }\n\n  $scope.pgSpendingsSubscriptionsTemplate = {\n\n    editPrimaryContacts: function (groupModel) {\n\n      // var index groupContacts\n      var lookupExistingContacts = groupModel.Contacts.buildIndex('UserId');\n\n      // de-couple the groupModel\n      var contacts = JSON.parse(JSON.stringify($scope.pgSpendingsSubscriptionsTemplateScope.teamProfileMembers)).filter(function (c) {\n        return (c.Type !== 'app-only');\n      });\n\n      var existingContacts = [];\n      contacts.forEach(function (c) {\n        if (lookupExistingContacts[c.UserId]) {\n          existingContacts.push(c);\n        }\n      });\n\n      // description\n      var description = 'Please select the users who should become responsible contacts for the subscription <b>' + groupModel.PrimaryGroupName + '</b>. This helps to contact the right person to clarify unexpected spending changes.';\n\n      var getDisplayName = function (model) {\n        if ($scope.isUserPseudoUser(model)) {\n          return model.Contact;\n        } else {\n          return model.FirstName + ' ' + model.LastName;\n        }\n      };\n\n      var getDetailsString = function (model) {\n        if ($scope.isUserPseudoUser(model)) {\n          return 'Invitation pending';\n        } else {\n          return model.Contact;\n        }\n      };\n\n      var getImageUrl = function (model) {\n        return gravatarService.url(model.Contact, {size: 32, default: 'mm'});\n      };\n\n      $scope.openObjectPickerDialog('Select responsible user', description, getImageUrl, getDisplayName, getDetailsString, contacts, existingContacts).then(function (selectedUsers) {\n\n\n        // geenerate the userIdList\n        var userIdList = selectedUsers.map(function (user) {\n          return user.UserId;\n        });\n\n        // update the contacts in the network\n        $eaBackend.dataPutContractSubscription($scope.team, $scope.contract, groupModel.PrimaryGroupId, {Contacts: userIdList}, $scope.token).then(function () {\n\n          // update the cache\n          $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SubscriptionEntryClass', ['SubscriptionId'], [groupModel.PrimaryGroupId], 'Contacts', userIdList, 'set');\n\n          // rerender\n          $scope.refreshWidget();\n        })\n      })\n    }\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaWidgetGroupFilterListViewSortingMixin', function($scope) {\n\n  $scope.sortOrderDesc = false;\n  $scope.sortOrderByGroupName = true;\n  $scope.sortOrderByPeriod = null;\n\n  $scope.sortPrimaryGroups = function(groupItem) {\n    if ($scope.sortOrderByPeriod) {\n      var groupCollection = groupItem.SecondaryGroups[$scope.sortOrderByPeriod];\n      if (!groupCollection) { return 0.0; }\n\n      return groupCollection.ServiceCosts;\n    } else {\n      return groupItem.PrimaryGroupName;\n    }\n  };\n\n  $scope.sortServiceItems  = function(serviceItem) {\n\n    var primaryGroupKeyComparition   = $scope.groupOption.Compare || 'CaseSensitive';\n\n    if ($scope.sortOrderByPeriod) {\n      var groupKeyValue = serviceItem[$scope.groupOption.GroupProperty];\n      if (!groupKeyValue) { return 0.0; }\n\n      var groupKeyValueAdapted = groupKeyValue;\n      if (angular.isArray(groupKeyValue)) {\n        groupKeyValueAdapted = groupKeyValue[0];\n      }\n\n      // check if we need to compare case sensitive or insensitive\n      if (primaryGroupKeyComparition === 'CaseInSensitive') {\n        groupKeyValueAdapted = groupKeyValueAdapted.toLowerCase();\n      }\n\n      var groupCollection = $scope.groupedSpendingData.PrimaryGroups[groupKeyValueAdapted].SecondaryGroups[$scope.sortOrderByPeriod];\n      if (!groupCollection) { return 0.0; }\n\n      var service = groupCollection.ServiceItemsMap[serviceItem[$scope.subitemIdProperty]];\n      if (!service) { return 0.0; }\n\n      return service[$scope.itemCostProperty];\n    } else {\n      return serviceItem.ServiceName;\n    }\n  };\n\n  $scope.setPrimaryGroupOrderSettings = function() {\n\n    if ($scope.sortOrderByGroupName) {\n      $scope.sortOrderDesc = !$scope.sortOrderDesc;\n    } else {\n      $scope.sortOrderByGroupName = true;\n      $scope.sortOrderByPeriod = null;\n      $scope.sortOrderDesc = false;\n    }\n  };\n\n  $scope.setOrderByCosts = function(period) {\n    if ($scope.sortOrderByPeriod && $scope.sortOrderByPeriod === period) {\n      $scope.sortOrderDesc = !$scope.sortOrderDesc;\n    } else if ($scope.sortOrderByPeriod) {\n      $scope.sortOrderByGroupName = false;\n      $scope.sortOrderByPeriod = period;\n    } else {\n      $scope.sortOrderByGroupName = false;\n      $scope.sortOrderByPeriod = period;\n      $scope.sortOrderDesc = false;\n    }\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaWidgetGroupFilterListViewFiltersMixin', function($scope, $busy, $eaBackend, $eaDataCoordinator, $eaFilterPanel, $q) {\n\n  // Filter Handing\n  $scope.resetFilter = function() {\n    $scope.activeFilter = null;\n    $scope.rawItemsFiltered = [];\n    $scope.refreshWidget();\n  };\n\n  $scope.applyFilter = function(filter) {\n    $scope.activeFilter = filter;\n    $scope.rawItemsFiltered = [];\n    $scope.refreshWidget();\n  };\n\n  $scope.removeFilter = function(filter, force) {\n    // ask for removal\n    var deleteOk = force;\n    deleteOk = deleteOk || confirm('Do you really want to remove the filter: ' + (filter && filter.Name ? filter.Name : 'unknown') );\n\n    // check\n    if (deleteOk) {\n\n      // remove from backend\n      $busy.during($eaBackend.dataRemoveDataFilter(filter.TeamId, $scope.contract, filter.Id, $scope.token).then(function() {\n\n        // remove from cached data\n        $eaDataCoordinator.removeModels($scope.team, $scope.contract, 'SpendingFilterClass', ['Id'], [filter.Id]);\n\n        return $eaDataCoordinator.queryData($scope.team, $scope.contract, $scope.token, 'SpendingFilterClass', null).then(function (dataFilters) {\n          $scope.availableFilters = dataFilters;\n        });\n      }));\n    }\n  };\n\n  $scope.createFilter = function(filter) {\n    $scope.activeFilter = $eaFilterPanel.buildFilter($scope.userProfile.UserId);\n  };\n\n  $scope.saveFilter = function(teamFilter) {\n\n    // check if it's a new filter or if we need to update the filter\n    if (!$scope.activeFilter.Id) {\n\n      // create the filter in the server\n      return $busy.during($eaBackend.dataCreateDataFilter(teamFilter ? $scope.team : 'personal', $scope.contract, $scope.activeFilter, $scope.token).then(function(result) {\n\n        // assign the new id\n        $scope.activeFilter.Id = result.FilterId;\n\n        // add the filter to the UI\n        $eaDataCoordinator.addModels($scope.team, $scope.contract, 'SpendingFilterClass', [$scope.activeFilter]);\n\n        // apply the filter\n        $scope.applyFilter($scope.activeFilter);\n      }));\n\n    } else {\n\n      // update the filter in storage\n      return $busy.during($eaBackend.dataUpdateDataFilter(teamFilter ? $scope.team : 'personal', $scope.contract, $scope.activeFilter, $scope.token)).then(function() {\n\n        // update the ui model\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingFilterClass', ['Id'], [$scope.activeFilter.Id], ['Name', 'Rules', 'Owner', 'TeamId'], [$scope.activeFilter.Name, $scope.activeFilter.Rules, $scope.activeFilter.Owner, $scope.activeFilter.TeamId]);\n\n        // ensure the filter is active\n        $scope.applyFilter($scope.activeFilter);\n      });\n    }\n  };\n\n  $scope.shareFilter = function() {\n    // save the personal filter\n    $busy.during($scope.saveFilter(false).then(function() {\n\n      // remove the ID\n      var oldFilterId = $scope.activeFilter.Id;\n      $scope.activeFilter.Id = null;\n\n      // store the filter again for the team\n      return $scope.saveFilter(true).then(function() {\n        $scope.activeFilter.TeamId = $scope.team;\n        return $scope.removeFilter({Id: oldFilterId, TeamId: 'personal'}, true);\n      });\n\n    }));\n  };\n\n  $scope.unShareFilter = function() {\n    // save the team filter\n    $busy.during($scope.saveFilter(true).then(function() {\n\n      // remove the ID\n      var oldFilterId = $scope.activeFilter.Id;\n      $scope.activeFilter.Id = null;\n\n      // store the filter again for the team\n      return $scope.saveFilter(false).then(function() {\n        $scope.activeFilter.TeamId = 'personal';\n        return $scope.removeFilter({Id: oldFilterId, TeamId: $scope.team}, true);\n      })\n    }))\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('EaWidgetGroupFilterListViewExportMixin', function($scope, $eaDataExportOperations, $busy, $eaDownload) {\n\n  $scope.exportData = function() {\n\n    // open the dialog\n    $scope.openExportWizard($scope.options.dataItems.exportheader, $scope.options.dataItems.exporttags).then(function(exportConfig) {\n\n      // flatten our history\n      var historyElements = Object.keys($scope.groupedSpendingData.History).map(function(elementKey) {\n        return $scope.groupedSpendingData.History[elementKey];\n      });\n\n      // inject tag properties\n      if (exportConfig.config.tagsToExport)\n      {\n        var splittedTags = exportConfig.config.tagsToExport.split(';');\n        splittedTags.forEach(function(t) {\n          exportConfig.header.push('tag:' + t);\n        })\n      }\n\n      // inject the cost headers\n      $scope.groupedAllCheckdPeriods.reverse().forEach(function(period) {\n\n        if ($scope.itemCostProperty) {\n          exportConfig.header.push(period + '-Costs');\n        }\n\n        if ($scope.itemQuantityProperty) {\n          exportConfig.header.push(period + '-Quantity');\n        }\n      });\n\n      // export the data\n      return $busy.during($eaDataExportOperations.exportListTo('csv', historyElements, exportConfig.header, exportConfig.config).then(function (data) {\n        $eaDownload.do(data, $scope.contract + '-' + $scope.selectedPeriod + \"-azure-costs.csv\", \"text/plain\");\n      }));\n    });\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaWidgetGroupFilterListViewDataSources', function($q, $eaDataSourceManager) {\n  var self = this;\n\n\n  self.registerDataSources = function(controllerScope)\n  {\n    // Register all datasources this widget offers\n    // Data source the widget provides\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'Items', null, function () {\n      return controllerScope.buildDashboardDefer.promise.then(function () {\n        return $q.when(controllerScope.rawItems);\n      });\n    });\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'Items.Filtered', null, function () {\n      return controllerScope.buildDashboardDefer.promise.then(function () {\n        if (controllerScope.activeFilter) {\n          return $q.when(controllerScope.rawItemsFiltered);\n        } else {\n          return $q.when(controllerScope.rawItems);\n        }\n      });\n    });\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'Items.Selected.Filtered', null, function () {\n      return controllerScope.buildDashboardDefer.promise.then(function (groupSpendingData) {\n        if (groupSpendingData.All && groupSpendingData.All.ServiceItems) {\n          return $q.when(groupSpendingData.All.ServiceItems);\n        } else {\n          return $q.when([]);\n        }\n      });\n    });\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'Items.Checked.Filtered.Overall', null, function () {\n      return controllerScope.buildDashboardDefer.promise.then(function (groupedSpendingData) {\n        if (groupedSpendingData.All && groupedSpendingData.All.ServiceCosts && groupedSpendingData.Currency && groupedSpendingData.Currency.Symbol) {\n          return $q.when([{\n            ReportCurrencySymbol: groupedSpendingData.Currency.Symbol,\n            ServiceCosts: groupedSpendingData.All.ServiceCosts\n          }]);\n        } else {\n          return $q.when([]);\n        }\n      });\n    });\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'Groups', null, function () {\n      return $q.when(controllerScope.groupOptions);\n    });\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'Groups.Active', null, function () {\n      return controllerScope.buildDashboardDefer.promise.then(function (groupedSpendingData) {\n        return $q.when(groupedSpendingData.SelectedGroupOption);\n      })\n    });\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'Periods', null, function () {\n      return $q.when({PeriodProperty: 'ReportId', PeriodsAvailable: controllerScope.availablePeriods});\n    });\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgTemplateHost', function($compile) {\n  return {\n    restrict: 'C',\n    scope: {\n      template: '='\n    },\n    link: function(scope, element) {\n      element.attr('class', scope.template);\n      $compile(element)(scope.$parent);\n    }\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgDefaultTemplate', function() {\n  return {\n    restrict: 'C',\n    template:\n      '<div class=\"subscriptionColorBox\" ng-style=\"{ \\'background-color\\': groupData.GroupColor }\"></div>' +\n      '<div class=\"subscriptionNameBox\">{{groupData.PrimaryGroupName}}</div>' +\n      '<div class=\"clearfix\"></div>',\n    scope: false\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgSubitemDefaultTemplate', function() {\n  return {\n    restrict: 'C',\n    template:\n      '<div ng-if=\"serviceItem[subitemIconProperty] && serviceItem[subitemIconProperty].indexOf(\\'fa-\\') !== 0\" class=\"subscriptionServiceIcon\" ng-class=\"serviceItem[subitemIconProperty]\"></div>' +\n      '<div ng-if=\"serviceItem[subitemIconProperty] && serviceItem[subitemIconProperty].indexOf(\\'fa-\\') === 0\" class=\"subscriptionServiceIcon\"><i class=\"fa\" ng-class=\"serviceItem[subitemIconProperty]\" style=\"font-size: 16px; margin-top: 2px; margin-bottom: 2px; display: block;\"></i></div>' +\n      '<div class=\"subscriptionServiceName\" style=\"width: calc(100% - 36px);\">{{getSubItemTitle(serviceItem)}}</div>' +\n      '<div class=\"clearfix\"></div>',\n    scope: false\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgCspCustomerTemplate', function() {\n  return {\n    restrict: 'C',\n    template:\n      '<div class=\"subscriptionColorBox\" ng-style=\"{ \\'background-color\\': groupData.GroupColor }\"></div>' +\n      '<div class=\"subscriptionNameBox\">{{groupData.PrimaryGroupName}}' +\n        '&nbsp;&nbsp;<a href=\"\" ng-click=\"openCustomerDashboard(groupData, false)\" title=\"Open Customer Portal\"><i class=\"fa fa-external-link\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"!isT1N()\" ng-click=\"openCustomerDashboard(groupData, true)\" title=\"Open Customer Portal without margin & filters\"><i class=\"fa fa-line-chart\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-click=\"defineResellerMargin(groupData)\" title=\"Define uplifts/margin for customers\"><i class=\"fa fa-credit-card\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-click=\"defineResellerFilter(groupData)\" title=\"Define Reseller Filter\"><i class=\"fa fa-filter\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"!isT1N()\" ng-click=\"publishToReseller(groupData)\" title=\"Publish to Reseller\"><i class=\"fa fa-taxi\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"!isT1N()\" ng-click=\"updateVirtualMeters(groupData)\" title=\"Update Virtual Meters\"><i class=\"fa fa-id-card\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"!isT1N()\" ng-click=\"manageVouchers(groupData)\" title=\"Manage Vouchers\"><i class=\"fa fa-shopping-cart\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"isVirtual()\" ng-click=\"manageContainers(groupData)\" title=\"Manage Containers\"><i class=\"fa fa-archive\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"!isT1N()\" ng-click=\"openCustomerSettings(groupData)\" title=\"Settings\"><i class=\"fa fa-cog\"></i></a>' +\n        '&nbsp;&nbsp;<span ng-if=\"isCSP() && !isT1N() && syncHandlesEarnings(groupData) && !hasFullEarnings(groupData)\" class=\"badge badge-pill badge-listview badge-alert\" title=\"This element does not get all earnings\">Reduced Earnings</span>' +\n        '&nbsp;&nbsp;<span ng-if=\"isCSP() && !isT1N() && syncHandlesEarnings(groupData) && hasFullEarnings(groupData)\" class=\"badge badge-pill badge-listview badge-success\" title=\"This element does not get all earnings\"><i class=\"fa fa-check\"></i>All Earnings</span>' +\n        // '&nbsp;&nbsp;<span ng-if=\"isCSP() && !isT1N() && syncHandlesEarnings(groupData) && hasFullEarnings(groupData)\" class=\"badge badge-pill badge-listview badge-success\" title=\"This element does not get all earnings\"><i class=\"fa fa-check\"></i>AOBO</span>' +\n        '&nbsp;&nbsp;<span ng-if=\"isNewCommerce(groupData)\" class=\"badge badge-pill badge-listview badge-textcolor\" title=\"This is an Azure Plan Customer based on the New Commerce Model.\">Azure Plan</span>' +\n        '&nbsp;&nbsp;<span ng-if=\"isAlpha(groupData)\" class=\"badge badge-pill badge-listview badge-warning\" title=\"The functionality has currently the Alpha-Status. Should you have any issues please contact our support!\">Alpha</span>' +\n        '<span ng-show=\"showVersionChooser(groupData)\">&nbsp;&nbsp;<a href=\"\" ng-if=\"options.dataItems.collection !== \\'csp.ea.v2\\'\" ng-click=\"toggleVersion(groupData)\" title=\"Toggle Customer Portal Version\"><i class=\"fa fa-star\"></i></a><span>' +\n      '</div>' +\n      '<div class=\"clearfix\"></div>',\n    scope: false,\n    controller: 'EaWidgetGroupFilterListViewPgCspCustomerTemplateCtrl'\n  };\n}).controller('EaWidgetGroupFilterListViewPgCspCustomerTemplateCtrl', function($scope, $stateParams, $window) {\n\n  $scope.syncHandlesEarnings = function(customerGroupData) {\n\n    // check if we have data\n    if (!customerGroupData || !customerGroupData.ServiceItems || customerGroupData.ServiceItems.length === 0) {\n      return false;\n    }\n\n    // get the reference item\n    var refItem = customerGroupData.ServiceItems[0];\n\n    // debugger;\n    return refItem.ReportLastSync && (moment(refItem.ReportLastSync) > moment(\"2020-05-04T22:00\"));\n  };\n\n  $scope.isCSP = function() {\n    return ($scope.cust01 && $scope.cust01.TierLevel === 'T1');\n  };\n\n  $scope.isT1N = function() {\n    return ($scope.cust01 && $scope.cust01.TierLevel === 'T1N');\n  };\n\n  $scope.isVirtual = function() {    \n    return ($scope.cust01 && $scope.cust01.TierLevel === 'V1');\n  }\n\n  $scope.isNewCommerce = function(customerGroupData) {\n\n    // check if we have a service item\n    // debugger;\n    if (!customerGroupData.ServiceItems || customerGroupData.ServiceItems.length === 0) {\n      return false;\n    }\n\n    // get the reference item\n    var refItem = customerGroupData.ServiceItems[0];\n\n    // debugger;\n    return refItem.CustomerNewCommerce || false;\n  };\n\n  $scope.isAlpha = function(customerGroupData) {\n    return $scope.isNewCommerce(customerGroupData);\n  };\n\n  $scope.hasFullEarnings = function(customerGroupData) {\n\n    // no services\n    if (!customerGroupData.ServiceItems || customerGroupData.ServiceItems.length === 0) {\n      return true;\n    }\n\n    // check\n    var partialEarnings = customerGroupData.ServiceItems.filter(function(a) { return a.FullEarnings === false });\n    return !partialEarnings || partialEarnings.length === 0;\n  };\n\n  $scope.defineResellerMargin = function(customerGroupData) {\n    $scope.executeDashboardAction('func:28A17E4C-960F-4D79-AD31-B6BBC9B7CFF0', customerGroupData);\n  };\n\n  $scope.defineResellerFilter = function(resellerFilterData) {\n    $scope.executeDashboardAction('func:4A5811F8-8BA7-484F-9D18-138E4E2F3786', resellerFilterData);\n  };\n\n  $scope.openCustomerDashboard = function(customerGroupData, nomargin) {\n    var canCustomerSelectVersion = $scope.showVersionChooser(customerGroupData);\n    var teamId = customerGroupData.ServiceItems.length > 0 && customerGroupData.ServiceItems[0].CustomerTeamId ? customerGroupData.ServiceItems[0].CustomerTeamId : customerGroupData.PrimaryGroupId;\n    $scope.executeDashboardAction('func:2929E37C-B3D7-483C-9BF9-4BFCA5D9C92D', { TeamId: teamId, Cycle: $scope.options.dataItems.propertyState, NoMargin: nomargin, ForceV2: !canCustomerSelectVersion });\n  };\n\n  $scope.toggleVersion = function(customerGroupData) {\n    $scope.executeDashboardAction('func:9148E92E-6C1C-4846-BE9C-A8A5F9417AB5', customerGroupData);\n  };\n\n  $scope.updateVirtualMeters = function(customerGroupData) {\n    $scope.executeDashboardAction('func:632E41FF-BE9B-4793-B22B-B71EC997FEE1', customerGroupData);\n  };\n\n  $scope.openCustomerSettings = function(customerGroupData) {\n    $scope.executeDashboardAction('func:EE74EAF3-E461-4A11-9E29-F9A9069799D1', customerGroupData);\n  };\n\n\n  $scope.showVersionChooser = function(customerGroupData) {\n\n    // check if we have a service item\n    if (!customerGroupData.ServiceItems || customerGroupData.ServiceItems.length == 0) {\n      return false;\n    }\n\n    // get the reference item\n    var refItem = customerGroupData.ServiceItems[0];\n\n    // check the activation date\n    if (!refItem.ActivatedAt) {\n      return true;\n    } else if (refItem.ActivatedAt.indexOf('1970-') === 0) {\n      return true;\n    } else {\n      return false;\n    }\n  };\n\n  $scope.publishToReseller = function(customerGroupData) {\n    $scope.executeDashboardAction('func:55E8F243-E782-426C-825B-70E4C484846A', customerGroupData);\n  };\n\n  $scope.manageVouchers = function(customerGroupData) {\n    var targetUri = '/app2/teams/' + $stateParams.resellerId + '/apps/accounts/' + $stateParams.active + '/customers/' + customerGroupData.PrimaryGroupId + '/vouchers';\n    console.log('Target-Uri is: ' + targetUri);\n    $window.location.href = targetUri;\n  };\n\n  $scope.manageContainers = function(customerGroupData) {\n    var targetUri = '/app2/teams/' + $stateParams.resellerId + '/apps/accounts/' + $stateParams.active + '/customers/' + customerGroupData.PrimaryGroupId + '/containers';\n    console.log('Target-Uri is: ' + targetUri);\n    $window.location.href = targetUri;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgSubitemSpendingsServiceTemplate', function() {\n  return {\n    restrict: 'C',\n    template:\n      '<div class=\"subscriptionServiceIcon\" ng-class=\"serviceItem[subitemIconProperty]\" style=\"cursor: pointer\" popover-title=\"{{serviceItem.PopoverTitle}}\" popover-html-unsafe=\"{{serviceItem.PopoverHtml}}\" popover-trigger=\"mouseenter\" popover-placement=\"right\" ng-click=\"toggleDetailViewOpenedState(serviceItem)\"></div>' +\n      '<div class=\"subscriptionServiceName\" style=\"cursor: pointer\" style=\"width: 200px;\" ng-click=\"toggleDetailViewOpenedState(serviceItem)\">{{getSubItemTitle(serviceItem)}}<span ng-if=\"riPurchaseReportPossible(serviceItem)\">&nbsp;&nbsp;<a tooltip=\"Open Reservation Purchasing Impact Report\" ng-click=\"openRIPurchaseReport(serviceItem); $event.stopPropagation();\"<i class=\"fa fa-money\"></i></a></span></div>' +\n      '<div ng-if=\"serviceItem.allowTagging && isOpenedStateClosed(serviceItem)\" class=\"cell-tags\">' +\n        '<div class=\"ea-tag-list\" data-service=\"serviceItem\" data-tag-property=\"\\'ServiceTags\\'\" data-tag-added=\"addTag(serviceItem, tag)\" data-tag-removed=\"removeTag(serviceItem, tag)\" data-tag-auto-complete=\"queryTags(query)\"></div>' +\n      '</div>' +\n      '<div ng-if=\"isOpenedStateInProgress(serviceItem)\" class=\"cell-tags\">' +\n        '<div style=\"margin-top: 3px;\"><i class=\"fa fa-spinner\"></i>&nbsp;Loading details ...</div>' +\n      '</div>' +\n      '<div ng-if=\"isOpenedStateOpened(serviceItem)\" class=\"cell-tags\">' +\n        '<div class=\"btn-group\" role=\"group\" aria-label=\"...\">' +\n          '<button ng-repeat=\"diag in availableDetailDiagrams\" ng-click=\"switchDetailDiagramTo(diag)\" type=\"button\" class=\"btn btn-default btn-xs\" ng-class=\"activeDetailDiagram == diag ? \\'active\\' : \\'\\' \"><i class=\"fa {{diag.icon}}\"></i>&nbsp;{{diag.name}}</button>' +\n        '</div>'+\n      '</div>' +\n      '<div class=\"clearfix\"></div>' +\n      '<div ng-if=\"isOpenedStateOpened(serviceItem)\" ng-repeat=\"meter in activeDetailDiagram.meters\"  style=\"padding-left: 36px; background-color: white; width: calc(100% + 100px);\">' +\n        '<div ng-if=\"meter.name && meter.name.length > 0\">{{meter.name}} ({{meter.rate}})</div>' +\n        '<div class=\"ac-chart-area\" data-uuid=\"meter.id\" data-elements=\"meter.data\" data-value-field-name=\"activeDetailDiagram.dataValueFieldName\" data-label-field-name=\"activeDetailDiagram.dataLabelFieldName\" data-options=\"meter.options[activeDetailDiagram.dataValueFieldName]\" style=\"background-color: white; width: 100%; height: 150px;\"></div>' +\n      '</div>',\n    scope: false,\n    controller: 'EaWidgetGroupFilterListViewPgSubitemSpendingsServiceTemplateCtrl'\n  };\n}).controller('EaWidgetGroupFilterListViewPgSubitemSpendingsServiceTemplateCtrl', function($scope, $element, $controller, $state, $stateParams, $modal, $q, $window, $eaConfig, gravatarService, $eaDataCoordinator, $eaBackend, $eaDataAggregateOperations, $compile, $eaChartConfig, $eaBackendDataModeSelector, $timeout) {\n  var self = this;\n  var detailedChartElement = null;\n\n  function getDayOfMonthByIndex(idx) {\n    if ($eaBackendDataModeSelector.isBillingCycleEnabled()) {\n      var dayofMonth = moment($scope.serviceItem.ReportId).add($eaBackendDataModeSelector.getBillingCycleDay() - 1, 'days').add(idx, 'days').date();\n      return (\"0\" + dayofMonth).slice(-2);\n    } else {\n      return (\"0\" + (idx + 1)).slice(-2);\n    }\n  }\n\n  function getDateNameByIndex(idx)\n  {\n    if ($eaBackendDataModeSelector.isBillingCycleEnabled()) {\n      var m = moment($scope.serviceItem.ReportId).add($eaBackendDataModeSelector.getBillingCycleDay() - 1, 'days').add(idx, 'days');\n      return m.format('YYYY-MM-DD');\n    } else {\n      return $scope.serviceItem.ReportId + '-' + getDayOfMonthByIndex(idx);\n    }\n  }\n\n  function getMeterRateSafely(meter, reportId, currency) {\n\n    // check the reportId\n    if (!reportId) { return 'n/a'; }\n\n    // check the meter\n    if (!meter) { return 'n/a'; }\n\n    // check the Rates\n    if (meter.Rates.length == 0) { return 'n/a'; }\n\n    var reportRates = meter.Rates[reportId + '-01T00:00:00'];\n    if (!reportRates || reportRates.length == 0) { return 'n/a'; }\n\n    var reportRate = reportRates[0] || reportRates['default'];\n    if (!reportRate) { return 'n/a'; }\n\n    return reportRate.toFixed(8) + ' ' + currency\n  }\n\n  function areDataInV2Mode(serviceItem) {\n    return (Array.isArray(serviceItem.ServiceMeters));\n  }\n\n  // enable and disable tagging\n  $scope.serviceItem.allowTagging = !($scope.selectedPeriodsMultiNormalized.length > 1);\n  $scope.serviceItem.viewDayByDayCostsStatus = 'closed';\n  $scope.serviceItem.viewDayByDayCostsId = 'DailyCostsChart-' + $scope.serviceItem.EntityId;\n\n  $scope.switchDetailDiagramTo = function(target) {\n    $scope.activeDetailDiagram = target;\n  };\n\n  var XAxisTemplate = function() {\n    return getDayOfMonthByIndex(this.value);\n  };\n\n  var YAxisTemplateCurrency = function() {\n    return this.value.toFixed(2) + ' ' + $scope.serviceItem.ReportCurrencySymbol;\n  };\n\n  var YAxisTemplateQuantity = function() {\n    return this.value.toFixed(2) + ' ' + $scope.serviceItem.ServiceQuantityUnit;\n  };\n\n  function updateDiagram() {\n\n    var metersDayByDayCosts = [];\n    var metersDayByDayQuantity = [];\n\n    if (areDataInV2Mode($scope.serviceItem)) {\n\n      $scope.serviceItem.ServiceMeters.forEach(function (meter) {\n\n        var viewDayByDayCostsAndQuantityData = [];\n\n        for (var i = 0; i < meter.QuantityDaily.length; i++) {\n          viewDayByDayCostsAndQuantityData.push({\n            Day: getDateNameByIndex(i),\n            Quantity: meter.QuantityDaily[i],\n            Costs: meter.CostsDaily[i]\n          })\n        }\n\n        var options = {\n          Costs: dayByDayCostOptions,\n          Quantity: {\n            ToolTipTemplate: 'Service Quantity: <b>{point.y:,.6f} ' + meter.Unit + '</b>',\n            YAxisTemplate: function () {\n              return this.value.toFixed(2) + ' ' + meter.Unit;\n            },\n            XAxisTemplate: XAxisTemplate\n          }\n        };\n\n        var meterName = meter.Region + '/' + meter.Category + '/' + meter.SubCategory + '/' + meter.Name;\n        var meterRate = 'Costs: ' + meter.Costs.toFixed(8) + ' ' + $scope.serviceItem.ReportCurrencySymbol + ' / Rate: ' + getMeterRateSafely(meter, $scope.serviceItem.ReportId, $scope.serviceItem.ReportCurrencySymbol);\n        metersDayByDayCosts.push({\n          id: $scope.serviceItem.viewDayByDayCostsId + '.' + meter.Id,\n          name: meterName,\n          rate: meterRate,\n          options: options,\n          data: viewDayByDayCostsAndQuantityData\n        });\n        metersDayByDayQuantity.push({\n          id: $scope.serviceItem.viewDayByDayCostsId + '.' + meter.Id,\n          name: meterName,\n          rate: meterRate,\n          options: options,\n          data: viewDayByDayCostsAndQuantityData\n        });\n      });\n    } else {\n\n      var viewDayByDayCostsData = [];\n      var viewDayByDayQunatityData = [];\n\n      // Convert the daily data to the required data\n      if ($scope.serviceItem.ServiceDailyCosts) {\n        for (var i = 0; i < $scope.serviceItem.ServiceDailyCosts.length; i++) {\n          viewDayByDayCostsData.push({\n            Day: getDateNameByIndex(i),\n            Costs: $scope.serviceItem.ServiceDailyCosts[i]\n          });\n        }\n      }\n\n      if ($scope.serviceItem.ServiceDailyQuantities) {\n        for (var i = 0; i < $scope.serviceItem.ServiceDailyQuantities.length; i++) {\n          viewDayByDayQunatityData.push({\n            Day: getDateNameByIndex(i),\n            Quantity: $scope.serviceItem.ServiceDailyQuantities[i]\n          });\n        }\n      }\n\n      metersDayByDayCosts.push({\n        id: $scope.serviceItem.viewDayByDayCostsId,\n        name: \"\",\n        options: {Costs: dayByDayCostOptions},\n        data: viewDayByDayCostsData\n      });\n      metersDayByDayQuantity.push({\n        id: $scope.serviceItem.viewDayByDayCostsId,\n        name: \"\",\n        options: {Quantity: dayByDayQunatityOptions},\n        data: viewDayByDayQunatityData\n      });\n    }\n\n    $scope.availableDetailDiagrams = [\n      { id: 'costs', name: 'Costs', icon: 'fa-area-chart', meters: metersDayByDayCosts, dataValueFieldName:'Costs', dataLabelFieldName: 'Day'},\n      { id: 'quantity', name: 'Quantity', icon: 'fa-area-chart', meters: metersDayByDayQuantity, dataValueFieldName:'Quantity', dataLabelFieldName:'Day'}\n    ];\n\n    // set the default detials\n    $scope.switchDetailDiagramTo($scope.availableDetailDiagrams[0]);\n  }\n\n  // define the diagram options\n  var dayByDayCostOptions = {\n    ToolTipTemplate: 'Service Costs: <b>{point.y:,.6f} ' + $scope.serviceItem.ReportCurrencySymbol + '</b>',\n    YAxisTemplate: YAxisTemplateCurrency,\n    XAxisTemplate: XAxisTemplate\n  };\n\n  var dayByDayQunatityOptions = {\n    ToolTipTemplate: 'Service Quantity: <b>{point.y:,.6f} ' + $scope.serviceItem.ServiceQuantityUnit + '</b>',\n    YAxisTemplate: YAxisTemplateQuantity,\n    XAxisTemplate: XAxisTemplate\n  };\n\n  // update the diagram\n  updateDiagram();\n\n  // Handle the tagging requests for a service\n  $scope.addTag = function (service, tag) {\n\n    // update the models in data cache with the new values\n    $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], [service.ServiceName, service.ServiceCategory, service.SubscriptionId], 'ServiceTags', tag);\n    $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], [service.ServiceName, service.ServiceCategory, service.SubscriptionId], 'ServiceTagsV3', tag);\n\n    // create the tags array if needed\n    if (!service.ServiceTags || !Array.isArray(service.ServiceTags)) { service.ServiceTags = []; }\n    if (!service.ServiceTagsV3 || !Array.isArray(service.ServiceTagsV3)) { service.ServiceTagsV3 = []; }\n\n    // update the ui model for this periond\n    if (service.ServiceTags.indexOf(tag) === -1) { service.ServiceTags.push(tag); }\n    if (service.ServiceTagsV3.indexOf(tag) === -1) { service.ServiceTagsV3.push(tag); }\n\n    // update the history element\n    var itemKey = service.SubscriptionId + '-' + service.ServiceId;\n    $scope.groupedSpendingData.History[itemKey].ServiceTags = service.ServiceTags;\n    $scope.groupedSpendingData.History[itemKey].ServiceTagsV3 = service.ServiceTagsV3;\n\n    // send to the backend\n    if (service.SchemaVersion === 'spendings.v3' || service.SchemaVersion === 'spendings.v2') {\n      $eaBackend.dataSetServiceTagsV4($scope.team, $scope.contract, service.ServiceId, service.ServiceTags, $scope.token);\n    } else {\n      $eaBackend.dataSetServiceTagsV3($scope.team, $scope.contract, service.ServiceName, service.ServiceCategory, service.SubscriptionId, service.ServiceTagsV3, $scope.token);\n    }\n  };\n\n  function removeTagFromUIElement(service, tagProperty, searchProperties, tagToRemove) {\n    $scope.rawItems\n      //.filter(function(a) { return a.ServiceId === service.ServiceId; })\n      .filter(function(a) {\n        var bPassed = true;\n\n        searchProperties.forEach(function (sp) {\n          if (a[sp] !== service[sp]) {\n            bPassed = false;\n          }\n        });\n\n        return bPassed;\n      }).forEach(function(item) {\n\n        var index = item.ServiceTags.indexOf(tagToRemove);\n        if (index !== -1 ) { item.ServiceTags.splice(index, 1); }\n\n        if (tagProperty) {\n          index = item[tagProperty].indexOf(tagToRemove);\n          if (index !== -1) {\n            item[tagProperty].splice(index, 1);\n          }\n        }\n      });\n  }\n\n  $scope.removeTag = function (service, tag) {\n\n    // update the ui model for this periond\n    var tagIndex = service.ServiceTags.indexOf(tag);\n    if ( tagIndex !== -1) { service.ServiceTags.splice(tagIndex, 1); }\n\n    // remove from history data\n    var itemKey = service.SubscriptionId + '-' + service.ServiceId;\n    $scope.groupedSpendingData.History[itemKey].ServiceTags.splice(tagIndex, 1);\n\n    // remember if removed befor\n    var removedBefore = false;\n\n    // understand what type if tag is it\n    var tagIndexV1 = service.ServiceTagsV1.indexOf(tag);\n    if (tagIndexV1 !== -1) {\n      removedBefore = true;\n      service.ServiceTagsV1.splice(tagIndexV1, 1);\n      $eaBackend.dataSetServiceTagsV1($scope.team, $scope.contract, service.ServiceName, service.ServiceTagsV1, $scope.token).then(function() {\n\n        // update the models in data cache with the new values\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName'], [service.ServiceName], 'ServiceTagsV1', tag, 'remove');\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName'], [service.ServiceName], 'ServiceTags', tag, 'remove');\n\n        // update the UI\n        removeTagFromUIElement(service, undefined, ['ServiceName'], tag);\n      })\n    }\n\n    var tagIndexV2 = service.ServiceTagsV2.indexOf(tag);\n    if (tagIndexV2 !== -1) {\n      removedBefore = true;\n      service.ServiceTagsV2.splice(tagIndexV2, 1);\n      $eaBackend.dataSetServiceTagsV2($scope.team, $scope.contract, service.ServiceName, service.ServiceCategory, service.ServiceTagsV2, $scope.token).then(function() {\n\n        // update the models in data cache with the new values\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory'], [service.ServiceName, service.ServiceCategory], 'ServiceTagsV2', tag, 'remove');\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory'], [service.ServiceName, service.ServiceCategory], 'ServiceTags', tag, 'remove');\n\n        // update the UI\n        removeTagFromUIElement(service, 'ServiceTagsV2', ['ServiceName', 'ServiceCategory'], tag);\n      })\n    }\n\n    // Handle V3 tags\n    var tagIndexV3 = service.ServiceTagsV3.indexOf(tag);\n    if (tagIndexV3 !== -1) {\n      removedBefore = true;\n      service.ServiceTagsV3.splice(tagIndexV3, 1);\n\n      // remove from history data\n      $scope.groupedSpendingData.History[itemKey].ServiceTagsV3.splice(tagIndexV3, 1);\n\n      // remove the tag in backend\n      $eaBackend.dataSetServiceTagsV3($scope.team, $scope.contract, service.ServiceName, service.ServiceCategory, service.SubscriptionId, service.ServiceTagsV3, $scope.token).then(function() {\n\n        // update the models in data cache with the new values\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], [service.ServiceName, service.ServiceCategory, service.SubscriptionId], 'ServiceTagsV3', tag, 'remove');\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], [service.ServiceName, service.ServiceCategory, service.SubscriptionId], 'ServiceTags', tag, 'remove');\n\n        // update the UI\n        removeTagFromUIElement(service, 'ServiceTagsV3', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], tag);\n      })\n    }\n\n    if (!removedBefore) {\n      // remove the tag in backend\n      var removePromise;\n\n      if (service.SchemaVersion === 'spendings.v3' || service.SchemaVersion === 'spendings.v2') {\n        removePromise = $eaBackend.dataSetServiceTagsV4($scope.team, $scope.contract, service.ServiceId, service.ServiceTags, $scope.token);\n      } else {\n\n        // remove from history data\n        $scope.groupedSpendingData.History[itemKey].ServiceTagsV3.splice(tagIndexV3, 1);\n\n        removePromise = $eaBackend.dataSetServiceTagsV3($scope.team, $scope.contract, service.ServiceName, service.ServiceCategory, service.SubscriptionId, service.ServiceTagsV3, $scope.token);\n      }\n      removePromise.then(function() {\n\n        // update the models in data cache with the new values\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], [service.ServiceName, service.ServiceCategory, service.SubscriptionId], 'ServiceTagsV3', tag, 'remove');\n        $eaDataCoordinator.updateModels($scope.team, $scope.contract, 'SpendingEntryClass', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], [service.ServiceName, service.ServiceCategory, service.SubscriptionId], 'ServiceTags', tag, 'remove');\n\n        // update the UI\n        removeTagFromUIElement(service, 'ServiceTagsV3', ['ServiceName', 'ServiceCategory', 'SubscriptionId'], tag);\n      })\n    }\n  };\n\n  $scope.queryTags = function (query) {\n    // find the distince values of the tags property (filtered by query)\n    return $eaDataAggregateOperations.distinct($scope.rawItems, 'ServiceTags', query);\n  };\n\n\n  self.getPopOverTitle = function(groupedServiceDefinitions, metaDataKeyValue, titleProperty) {\n    var metaDataElement = groupedServiceDefinitions[metaDataKeyValue];\n    if (metaDataElement && metaDataElement[0] && metaDataElement[0][titleProperty]) {\n      return metaDataElement[0][titleProperty];\n    } else {\n      return metaDataKeyValue;\n    }\n  };\n\n  self.getPopOverContent = function(groupedServiceDefinitions, metaDataKeyValue, contentProperty, element) {\n    // get the default value\n    var popOverContent = self.getPopOverTitle(groupedServiceDefinitions, metaDataKeyValue, contentProperty);\n\n    // generate the service summary, a virtual property\n    if (contentProperty === 'ServiceSummary') {\n\n      var metaDataElement = groupedServiceDefinitions[metaDataKeyValue];\n      if (metaDataElement && metaDataElement !== undefined) {\n        metaDataElement = metaDataElement[0];\n      }\n\n      var serviceDescriptionHtml = '';\n\n      // add the description\n      if (metaDataElement && metaDataElement !== undefined) {\n        serviceDescriptionHtml += '<p>' + metaDataElement.ServiceDescription + '</p>';\n      }\n\n      // handle quantity unit\n      var unit = element.ServiceQuantityUnit;\n      if (element.ServiceQuantityUnit == 'not_set') {\n        unit = '';\n      }\n\n      // fill up optionla values\n      if (!element.ServiceQuantity) {\n        element.ServiceQuantity = 0.0;\n      }\n\n      var azureTags = [];\n      Object.keys(element).forEach(function (k) {\n        if (k.indexOf('AzureTag:') !== 0) {\n          return;\n        }\n        azureTags.push({k: k.replace('AzureTag:', ''), v: element[k]});\n      });\n\n      // generate the popup\n      serviceDescriptionHtml += '<table class=\"popover-service-details\">';\n      serviceDescriptionHtml += '<tr><td colspan=\"2\"><h5>General Information</h5></td></tr>';\n      serviceDescriptionHtml += '<tr><td>Subscription:</td><td>' + element.SubscriptionName + '</td></tr>';\n      serviceDescriptionHtml += '<tr><td>Name:</td><td>' + element.ServiceName + '</td></tr>';\n      serviceDescriptionHtml += '<tr><td>Category:</td><td>' + element.ServiceCategory + '</td></tr>';\n      serviceDescriptionHtml += '<tr><td>Type:</td><td>' + element.ServiceType + '</td></tr>';\n      serviceDescriptionHtml += '<tr><td>Size:</td><td>' + element.ServiceSize + '</td></tr>';\n      serviceDescriptionHtml += '<tr><td>Region:</td><td>' + element.ServiceRegion + '</td></tr>';\n      serviceDescriptionHtml += '<tr><td>ResourceGroup:</td><td>' + element.ResourceGroup + '</td></tr>';\n\n      // quantity only when we have no meters\n      if (!Array.isArray(element.ServiceMeters)) {\n        serviceDescriptionHtml += '<tr><td>Quantity:</td><td>' + element.ServiceQuantity.toFixed(8) + '&nbsp;' + unit + '</td></tr>';\n      }\n\n      // add the costs\n      serviceDescriptionHtml += '<tr><td>Costs:</td><td>' + element.ServiceCosts.toFixed(8) + '&nbsp;' + element.ReportCurrencySymbol + '</td></tr>';\n\n      // visit all meters if available\n      if (Array.isArray(element.ServiceMeters) && element.ServiceMeters.length > 0) {\n\n        serviceDescriptionHtml += '<tr><td colspan=\"2\"><h5>Service Meters (Quantity/Costs/Rate)</h5></td></tr>';\n\n        element.ServiceMeters.forEach(function(meter) {\n\n          // Region / Category / SubCategory / Name  4545 Unit 565€\n          serviceDescriptionHtml += '<tr><td>' + meter.SubCategory + '</td><td>' + meter.Quantity.toFixed(8) + '&nbsp;' + meter.Unit + ' / ' + meter.Costs.toFixed(8) + '&nbsp' + element.ReportCurrencySymbol + ' / ' + getMeterRateSafely(meter, element.ReportId, element.ReportCurrencySymbol) + '</td></tr>';\n          serviceDescriptionHtml += '<tr><td colspan=\"2\" style=\"font-size: 10px;\">' + meter.Region + '/' + meter.Category + '/' + meter.SubCategory + '/' + meter.Name + '</td></tr>';\n        });\n      }\n\n\n      if (azureTags.length > 0) {\n        serviceDescriptionHtml += '<tr><td colspan=\"2\"><h5>Grouping Tags</h5></td></tr>';\n\n        azureTags.forEach(function(tag) {\n          serviceDescriptionHtml += '<tr><td>' + tag.k + ':</td><td>' + tag.v + '</td></tr>';\n        });\n      }\n\n      serviceDescriptionHtml += '</table>';\n\n      return serviceDescriptionHtml;\n    }\n  };\n\n  // build the popup information\n  $scope.serviceItem.PopoverTitle = $scope.serviceItem.ServiceName; // self.getPopOverTitle($scope.groupedServiceDefinitions, $scope.serviceItem.ServiceType, 'ServiceTitle');\n  $scope.serviceItem.PopoverHtml = self.getPopOverContent($scope.groupedServiceDefinitions, $scope.serviceItem.ServiceType, 'ServiceSummary', $scope.serviceItem);\n\n  // Allow to open the RI report\n  $scope.riPurchaseReportPossible = function(serviceItem) {\n\n    // check if the feature is enabled\n    if (!$eaConfig.riEnabled) { return false; }\n\n    // check if we have teh right service type\n    if (serviceItem.ServiceType !== 'VirtualMachine' && serviceItem.ServiceCategory !== 'Virtual Machines') { return false;}\n\n    // ok good to go\n    return true;\n  };\n\n  $scope.openRIPurchaseReport = function(serviceItem)\n  {\n    var url = $state.href('authorized.teams.rimanagement', { service: serviceItem.ServiceId, contract: $stateParams.active });\n    $window.open(url,'_blank');\n  };\n\n\n  $scope.isOpenedStateClosed = function(serviceItem) {\n    return serviceItem.viewDayByDayCostsStatus === 'closed';\n  };\n\n  $scope.isOpenedStateOpened = function(serviceItem) {\n    return serviceItem.viewDayByDayCostsStatus === 'opened';\n  };\n\n  $scope.isOpenedStateInProgress = function(serviceItem) {\n    return serviceItem.viewDayByDayCostsStatus === 'progressing';\n  };\n\n  $scope.setOpenedStateClosed = function(serviceItem) {\n    serviceItem.viewDayByDayCostsStatus = 'closed';\n  };\n\n  $scope.setOpenedStateOpened = function(serviceItem) {\n    serviceItem.viewDayByDayCostsStatus = 'opened';\n  };\n\n  $scope.setOpenedStateProgress = function(serviceItem) {\n    serviceItem.viewDayByDayCostsStatus = 'progressing';\n  };\n\n  $scope.toggleDetailViewOpenedState = function(serviceItem) {\n\n    // check if we are closing\n    if ($scope.isOpenedStateOpened(serviceItem)) {\n      $scope.setOpenedStateClosed(serviceItem);\n      return;\n    }\n\n    // check if we are in V2 mode if not render instantly\n    if (!areDataInV2Mode(serviceItem)) {\n      $scope.setOpenedStateOpened(serviceItem);\n      return;\n    }\n\n    // now that we now we are in V2 mode check if we have preloaded data\n    if (serviceItem.ServiceMeters != null && serviceItem.ServiceMeters.length > 0) {\n      $scope.setOpenedStateOpened(serviceItem);\n      return;\n    }\n\n    // start the progressing\n    $scope.setOpenedStateProgress(serviceItem);\n\n    // load the meter dynamically\n    $eaBackend.dataGetMetersForService($scope.team, $scope.contract, serviceItem.ReportId, serviceItem.ServiceId, $scope.token).then(function(loadedMeters) {\n\n      // set the meters\n      if (loadedMeters && loadedMeters.Items) { serviceItem.ServiceMeters = loadedMeters.Items; }\n\n      // update the diagram\n      updateDiagram();\n\n      // done\n      $scope.setOpenedStateOpened(serviceItem);\n    });\n  }\n\n\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgCspResellerT2Template', function() {\n  return {\n    restrict: 'C',\n    template:\n      '<div class=\"subscriptionColorBox\" ng-style=\"{ \\'background-color\\': groupData.GroupColor }\"></div>' +\n      '<div class=\"subscriptionNameBox\">{{groupData.PrimaryGroupName}}' +\n        '&nbsp;&nbsp;<a href=\"\" ng-click=\"openResellerPortal(groupData, false); $event.stopPropagation();\" title=\"Open Reseller Portal\"><i class=\"fa fa-external-link\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"!isT1N()\" ng-click=\"defineResellerMargin(groupData)\" title=\"Define uplifts/margin for reseller\"><i class=\"fa fa-credit-card\"></i></a>' +\n        '&nbsp;&nbsp;<a href=\"\" ng-click=\"unpublishAllCustomers(groupData, false); $event.stopPropagation();\" title=\"UnPublish all customers\"><i class=\"fa fa-trash\"></i></a>' +\n      '</div>' +\n      '<div class=\"clearfix\"></div>',\n    scope: false,\n    controller: 'EaWidgetGroupFilterListViewPgCspResellerT2TemplateCtrl'\n  };\n}).controller('EaWidgetGroupFilterListViewPgCspResellerT2TemplateCtrl', function($scope) {\n\n  $scope.openResellerPortal = function(customerGroupData) {\n    if (customerGroupData.ServiceItems && customerGroupData.ServiceItems.length > 0 && customerGroupData.ServiceItems[0].ResellerTeamId) {\n      $scope.executeDashboardAction('func:75FF743F-21BC-4208-BB05-7AC447A17E19', {TeamId: customerGroupData.ServiceItems[0].ResellerTeamId, ResellerId: customerGroupData.ServiceItems[0].ResellerAccountId});\n    }\n  };\n\n  $scope.defineResellerMargin = function(customerGroupData) {\n    if (customerGroupData.ServiceItems && customerGroupData.ServiceItems.length > 0 && customerGroupData.ServiceItems[0].ResellerTeamId) {\n      $scope.executeDashboardAction('func:AD35F300-7307-4E33-B69C-E5576CDCDA4D', {ResellerTeamId: customerGroupData.ServiceItems[0].ResellerTeamId, ResellerId: customerGroupData.ServiceItems[0].ResellerId});\n    }\n  };\n\n  $scope.unpublishAllCustomers = function(customerGroupData) {\n    if (customerGroupData.ServiceItems && customerGroupData.ServiceItems.length > 0 && customerGroupData.ServiceItems[0].ResellerTeamId) {\n      $scope.executeDashboardAction('func:8910991F-B227-4A61-B4FB-3F2C6F69D276', {TeamId: customerGroupData.ServiceItems[0].ResellerTeamId, ResellerId: customerGroupData.ServiceItems[0].ResellerAccountId, Customers: customerGroupData.ServiceItems});\n    }\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetGroupFilterListViewPgSubItemCspResellerT2Template', function() {\n  return {\n    restrict: 'C',\n    template:\n      '<div ng-if=\"serviceItem[subitemIconProperty] && serviceItem[subitemIconProperty].indexOf(\\'fa-\\') !== 0\" class=\"subscriptionServiceIcon\" ng-class=\"serviceItem[subitemIconProperty]\"></div>' +\n      '<div ng-if=\"serviceItem[subitemIconProperty] && serviceItem[subitemIconProperty].indexOf(\\'fa-\\') === 0\" class=\"subscriptionServiceIcon\"><i class=\"fa\" ng-class=\"serviceItem[subitemIconProperty]\" style=\"font-size: 16px; margin-top: 2px; margin-bottom: 2px; display: block;\"></i></div>' +\n      '<div class=\"subscriptionServiceName\" style=\"width: calc(100% - 36px);\">{{getSubItemTitle(serviceItem)}}' +\n        '&nbsp;&nbsp;<a href=\"\" ng-if=\"serviceItem.CustomerState !== \\'pseudo\\'\" ng-click=\"unPublishCustomer(serviceItem)\" title=\"Remove Customer from Reseller\"><i class=\"fa fa-trash\"></i></a>' +\n      '</div>' +\n      '<div class=\"clearfix\"></div>',\n    scope: false,\n    controller: 'EaWidgetGroupFilterListViewPgSubItemCspResellerT2TemplateCtrl'\n  };\n}).controller('EaWidgetGroupFilterListViewPgSubItemCspResellerT2TemplateCtrl', function($scope) {\n\n  $scope.unPublishCustomer = function(serviceItem) {\n    $scope.executeDashboardAction('func:E6F0F729-6374-4A62-81A9-7D26EFE82346', {\n      ResellerTeamId: serviceItem.ResellerTeamId,\n      ResellerAccountId: serviceItem.ResellerAccountId,\n      ResellerId: serviceItem.ResellerId,\n      CustomerId: serviceItem.CustomerId\n    });\n  };\n});\n","'use strict';\n\n/*\n */\nangular.module('azureCostsFeApp').directive('eaWidgetRiPurchaseImpact', function() {\n  return {\n    restrict: 'C',\n    templateUrl: 'views/directive_ea_ri_purchase_impact.html',\n    controller: 'EaWidgetRiPurchaseImpactCtrl'\n  };\n}).controller('EaWidgetRiPurchaseImpactCtrl', function($scope, $rootScope, $q, $state, $stateParams, $eaDataCoordinator, $eaWidgetRiPurchaseImpactDataSources, $eaUserProfile, $acCacheIdentifierGenerator) {\n\n  // some UI states\n  $scope.hasData = false;\n  $scope.hasError = false;\n  $scope.selectorHeight = 63;\n  $scope.disclaimerHeight = 40;\n\n  $scope.buildDashboardDefer = $q.defer();\n  $scope.lastLoadedData;\n\n  $scope.enrollments = [];\n  $scope.currentEnrollment;\n\n  $scope.virtualMachines = [];\n  $scope.currentVirtualMachine;\n\n  // other state internal\n  var chartElement;\n  var lastSize;\n\n  function handleProfileData() {\n\n    $eaUserProfile.getContracts($scope.profiles.user, $scope.team).forEach(function(contract) {\n\n      var contractModel = {\n        Name: contract.Definition === 'EA' ? 'EA-' + contract.Enrollment : contract.Name,\n        Id: contract.Enrollment,\n        Team: contract.Team\n      };\n\n      $scope.enrollments.push(contractModel);\n\n      if (!$scope.currentEnrollment && $stateParams.contract && contractModel.Id === $stateParams.contract) {\n        $scope.currentEnrollment = contractModel;\n      }\n    });\n\n    if ($scope.enrollments.length > 0) { $scope.currentEnrollment = $scope.enrollments[0]; }\n  }\n\n  function handleVirtualMachines() {\n\n    // load the virtual machines which are available\n    return $eaDataCoordinator.queryData($scope.team, $scope.currentEnrollment.Id, $scope.token, 'RiAnalysisVirtualMachineItemClass', {collection: 'ri.v1'}).then(function (riVirtualMachines) {\n\n      // set the vms\n      $scope.virtualMachines = riVirtualMachines;\n\n      // check if we have a special VM request in the url\n      if ($stateParams.service)\n      {\n        riVirtualMachines.forEach(function(vm) {\n          if (vm.serviceid === $stateParams.service) {\n            $scope.currentVirtualMachine = vm;\n          }\n        });\n      }\n\n      // select the first one\n      if (!$scope.currentVirtualMachine && $scope.virtualMachines.length > 0) {\n        $scope.currentVirtualMachine = $scope.virtualMachines[0];\n      }\n\n      // done\n      return $q.when();\n    })\n  }\n\n  function buildDashboard() {\n\n    // set the deferrer pending\n    $scope.buildDashboardDefer = $q.defer();\n\n    // register the build chart callback\n    $scope.buildChartCallback = function (chartElementFromDirective) {\n\n      // get the cart element\n      chartElement = chartElementFromDirective;\n\n      // adapt to last know size\n      if (lastSize) {\n        chartElement.setSize(lastSize.w, lastSize.h - $scope.selectorHeight - $scope.disclaimerHeight, false);\n      }\n    };\n\n    // register the configure callback\n    $scope.configureCallback = function (chartOptions) {\n\n      // legend\n      chartOptions.legend = {\n        enabled: true\n      };\n\n      // tooltip\n      chartOptions.tooltip = {\n        enabled: true,\n        headerFormat: '',\n        formatter: function() {\n\n          var dateLine = '<b>' + moment(new Date($scope.lastLoadedData.startdate)).add('day', this.point.x).format('YYYY/MM/DD') + ' (' + this.series.name + ')</b><br/>';\n          var costsLine = '<span style=\"color:{point.color}\">\\u25CF</span> Costs: <b>' + this.point.y.toFixed(2) + $scope.lastLoadedData.currencysymbol + '</b><br/>';\n\n          if (this.series.name.toUpperCase().indexOf('FEE') !== -1) {\n            return dateLine + costsLine;\n          } else {\n\n            // build the usage line\n            var usageLine = '<span style=\"color:{point.color}\">\\u25CF</span> Usage: <b>' + ($scope.lastLoadedData.usages && $scope.lastLoadedData.usages.length > this.point.x ? $scope.lastLoadedData.usages[this.point.x].toFixed(2) + ' hrs' : 'n/a') + '</b><br/>';\n\n            // return the data\n            return dateLine + costsLine + usageLine;\n          }\n\n        }\n      };\n\n      // xAxis\n      chartOptions.xAxis = {\n        tickInterval: 31,\n        labels: {\n          x: 50,\n          formatter: function () {\n            return moment($scope.lastLoadedData.startdate).add(this.value, 'days').format('MM/YY');\n          }\n        },\n        plotLines: [{\n          color: '#000000',\n          dashStyle: 'longdashdot',\n          value: $scope.lastLoadedData.projectionindex,\n          width: 1\n        }]\n      };\n\n      // yAxis\n      chartOptions.yAxis = {\n        title: {\n          text: 'Accumulated Costs'\n        }\n      }\n    };\n\n    // regsiter the data callback\n    $scope.dataCallback = function (seriesArray) {\n\n      // load the spendings information from service layer\n      // TODO: Ensure Retry is working when the report is in progress\n      return $eaDataCoordinator.queryData($scope.team, $scope.currentEnrollment.Id, $scope.token, 'RiAnalysisResultItemClass', {\n        ResourceInstanceId: $scope.currentVirtualMachine.serviceid,\n        collection: 'ri.v1',\n        cachedCollectionKey: 'RiAnalysisResultItemClass:' + $scope.team + ':' + $scope.currentEnrollment.Id + ':' + $scope.currentVirtualMachine.serviceid,\n        query: {\n          vmeter: $scope.currentVirtualMachine.vmeter\n        }\n      }).then(function (riAnalysisData) {\n\n        if (riAnalysisData.error) {\n          $scope.hasError = true;\n          $scope.errorMessage = riAnalysisData.message;\n          $scope.hasData = false;\n\n        } else {\n          // set the last loaded data\n          $scope.lastLoadedData = riAnalysisData;\n\n          // set that we have data\n          $scope.hasData = true;\n          $scope.hasError = false;\n\n          // the last value\n          var lastValue = 0;\n\n          // prepare data\n          var dataFromPast = [];\n          var dataForFuture = [];\n          var data1YearRi = [];\n\n          for (var dataIndex = 0; dataIndex < riAnalysisData.spendings.length; dataIndex++) {\n\n            // define the consumption values\n            if (dataIndex < riAnalysisData.projectionindex) {\n              dataFromPast.push([dataIndex, lastValue + riAnalysisData.spendings[dataIndex]]);\n            } else if (dataIndex === riAnalysisData.projectionindex) {\n              dataFromPast.push([dataIndex, lastValue + riAnalysisData.spendings[dataIndex]]);\n              dataForFuture.push([dataIndex, lastValue + riAnalysisData.spendings[dataIndex]]);\n            } else {\n              dataForFuture.push([dataIndex, lastValue + riAnalysisData.spendings[dataIndex]]);\n            }\n\n            // span the ri values\n            data1YearRi.push([dataIndex, riAnalysisData.rifees.y1]);\n\n            // add the last value\n            lastValue = lastValue + riAnalysisData.spendings[dataIndex];\n          }\n\n          // define the series\n          seriesArray.push({\n            type: 'area',\n            color: '#b1cf95',\n            name: 'Used Consumption',\n            data: dataFromPast\n          });\n\n          seriesArray.push({\n            type: 'area',\n            color: '#e5efdb',\n            name: 'Projected Consumption',\n            data: dataForFuture\n          });\n\n          seriesArray.push({\n            type: 'line',\n            color: '#d38580',\n            name: 'Annual RI Fee',\n            data: data1YearRi,\n            lineWidth: 1,\n            dashStyle: 'Dash'\n          });\n        }\n\n        // refresh dependent widgets\n        $scope.refreshDependentWidgets();\n\n        // commit the defer\n        $scope.buildDashboardDefer.resolve();\n\n        // done\n        return $q.when();\n      })\n    };\n\n    // trigger the build of the diagram\n    $rootScope.$emit('build-chart-' + $scope.uuid);\n\n    // return the promise\n    return $scope.buildDashboardDefer.promise;\n  }\n\n  function processRefreshRequest() {\n\n    // handle the profiles\n    handleProfileData();\n\n    // process all for the selected enrollment\n    processChangeEnrollmentRequest();\n  }\n\n  function processChangeEnrollmentRequest() {\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    // load the virtual machines\n    return handleVirtualMachines().then(function() {\n\n      // refresh the VM\n      return processChangeVMRequest();\n    })\n  }\n\n  function processChangeVMRequest() {\n\n    // switch on the loading mode\n    $scope.setLoading(true);\n\n    // check if we have an active vm\n    if ($scope.currentVirtualMachine) {\n\n      return buildDashboard().then(function() {\n\n        // switch off the loading mode\n        $scope.setLoading(false);\n\n      })\n    } else {\n\n      // switch off the loading mode\n      $scope.setLoading(false);\n\n      // done\n      return $q.when();\n\n    }\n  }\n\n  function resizeChart(newSize) {\n    lastSize = newSize;\n    if (chartElement) { chartElement.setSize(newSize.w, newSize.h - $scope.selectorHeight - $scope.disclaimerHeight, false); }\n  }\n\n  $scope.selectEnrollment = function(enrollment) {\n\n    // set the current enrollment\n    $scope.currentEnrollment = enrollment;\n\n    // process the reuqest\n    processChangeEnrollmentRequest();\n  };\n\n  $scope.selectVirtualMachine = function(vm) {\n\n    $scope.currentVirtualMachine = vm;\n\n    processChangeVMRequest();\n  };\n\n  $scope.reCalculateReports = function() {\n\n    $acCacheIdentifierGenerator.updateDailyCacheLocalInjector('RiAnalysisResultItemClass');\n\n    // refresh screen\n    $state.go($state.current.name, { initial: null }, {reload: true});\n  };\n\n  // establish the resize callback\n  $scope.onResize(function(newSize) {\n    resizeChart(newSize);\n  });\n\n  // initialize when the host is ready\n  $scope.onInitialize(processRefreshRequest);\n\n  // rebuild the dashboard during reload\n  $scope.onReload(processRefreshRequest);\n\n  // register all datasources\n  $eaWidgetRiPurchaseImpactDataSources.registerDataSources($scope);\n\n  // if we are here everyhting is ready to load data\n  $scope.finalizeRegistration();\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaWidgetRiPurchaseImpactDataSources', function($q, $eaDataSourceManager, $eaDataAggregateOperations) {\n  var self = this;\n\n\n  self.registerDataSources = function(controllerScope)\n  {\n    // Register all datasources this widget offers\n    // Data source the widget provides\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'PotentialSavings', null, function () {\n      return controllerScope.buildDashboardDefer.promise.then(function () {\n\n        // cummolate the annual spendings\n        var overAllSpendings = $eaDataAggregateOperations.sum(controllerScope.lastLoadedData.spendings);\n\n        // diff from the costs for 1year\n        var savaings1Year = overAllSpendings - controllerScope.lastLoadedData.rifees.y1;\n        var savaings3Year = (overAllSpendings * 3) - controllerScope.lastLoadedData.rifees.y3;\n\n        // build the result\n        return $q.when([{ Year1: savaings1Year, Year3: savaings3Year, CurrencySymbol: controllerScope.lastLoadedData.currencysymbol}]);\n      });\n    });\n\n    $eaDataSourceManager.registerDataSource(controllerScope.uuid, 'VMDetails', null, function () {\n      return controllerScope.buildDashboardDefer.promise.then(function () {\n\n        return $q.when({\n          ConsumptionMeter: controllerScope.lastLoadedData.consumptionmeter,\n          MachineType: controllerScope.lastLoadedData.machinetype,\n          RIFeeY1: controllerScope.lastLoadedData.rifees.y1,\n          RIFeeY3: controllerScope.lastLoadedData.rifees.y3,\n          CurrencySymbol: controllerScope.lastLoadedData.currencysymbol,\n          DailyBurnRate: controllerScope.lastLoadedData.burnrate,\n          AvgRuntime: controllerScope.lastLoadedData.avgruntime,\n          RIBreakEvenY1: controllerScope.lastLoadedData.breakeveny1,\n          RIBreakEvenY3: controllerScope.lastLoadedData.breakeveny3\n        });\n      });\n    });\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaWidgetIframe', function() {\n  return {\n    restrict: 'C',\n    template: '<div class=\"widget-iframe\" id=\\\"iframe-{{uuid}}\\\" ng-if=\"enableFrame\">' +\n                '<iframe ng-src=\"{{targetPageTrusted}}\" id=\\\"iframe-{{uuid}}-frame\\\"></iframe>' +\n              '</div>',\n    controller: 'EaWidgetIframeCtrl'\n  };\n}).controller('EaWidgetIframeCtrl', function($scope, $q, $eaConfig, $eaDataCoordinator, $sce) {\n\n  $scope.enableFrame = false;\n\n  function loadIFrame() {\n\n    if ($scope.options.src) {\n\n      // get the uri\n      $scope.targetPage = $scope.options.src;\n      $scope.targetPageTrusted = $sce.trustAsResourceUrl($scope.targetPage);\n\n      $scope.setLoading(false);\n      $scope.enableFrame = true;\n      return $q.when();\n    } else {\n      $scope.setLoading(true);\n      return $q.when();\n    }\n  }\n\n  $scope.onResize(function(newSize) {\n    return $q.when();\n  });\n\n  $scope.onInitialize(function() {\n    return loadIFrame();\n  });\n\n  $scope.onReload(function() {\n    document.getElementById('iframe-' + $scope.uuid + '-frame').src += '';\n    return $q.when();\n  });\n\n  $scope.finalizeRegistration();\n});\n","'use strict';\n\n/**\n * @ngdoc directive\n * @name azureCostsFeApp.directive:eaNavbar\n * @description\n * # eaNavbar\n */\nangular.module('azureCostsFeApp').directive('eaNavbar', function () {\n    return {\n      templateUrl: 'views/directive_ea_navbar.html',\n      restrict: 'C',\n      controller: 'EaNavbarCtrl',\n      scope: {\n        currentSession: '='\n      }\n    };\n}).controller('EaNavbarCtrl', function($scope, $q, $eaBackend, $state, $rootScope, $eaBackendDataModeSelector, $eaSession2, $location, $busy, $controller, $modal, $timeout, $toolbar, $eaTeamManagement, $eaBranding, $eaUserProfile, gravatarService, $eaConfig, $stateParams, $eaCspService, $window, $eaNotificationCenter) {\n    var self = this;\n\n  // inject mixins\n  $.extend(self, $controller('SessionHelperCtrlMixin', {$scope: $scope, $eaBackendDataModeSelector: $eaBackendDataModeSelector, $eaSession2: $eaSession2, $state: $state }));\n  $.extend(self, $controller('TeamsChooseTeamMixinCtrl', {$scope: $scope, $modal: $modal, $controller: $controller, $q: $q, $eaTeamManagement: $eaTeamManagement}));\n\n  // define variables\n  $scope.toolbarItems =   $toolbar.items;\n  $scope.title = $eaBranding.currentCompanyInformation.title;\n  $scope.fullWidthHeader = true;\n\n  function updateNavBarBasicMenu() {\n\n    if ($scope.currentSession) {\n      $eaUserProfile.load($scope.currentSession.DataToken).then(function (profile) {\n\n        if ($scope.currentSession.isActAsSession()) {\n          $toolbar.addItem('leaveActAs', 'Leave Act-As', 'fa-sign-out', null, true, $scope.leaveActAs, null);\n        }\n\n        // define the username\n        var userName;\n        if ($scope.currentSession.FirstName) { userName = $scope.currentSession.FirstName + ' '; } else { userName = ''; }\n        if ($scope.currentSession.LastName) { userName = userName + $scope.currentSession.LastName; }\n        if (!userName) { userName = $scope.currentSession.Contact; }\n\n        // add the user item\n        $toolbar.addItem('user', userName, 'img:' + gravatarService.url($scope.currentSession.Contact, { size: 20, default: 'mm'}), $scope.currentSession.Contact, true, null, 99);\n\n        // figure out activeTeam\n        var activeTeam = $stateParams.teamid || $stateParams.resellerId;\n\n        // Add the manage team entry for all users who are not part of any team. This means the\n        // useres are not manager and can upgrade to a team or to the admins of a team.\n        if (!$eaTeamManagement.isPartOfAtLeastOneTime(profile)) {\n          $toolbar.addItem('user.manageTeams', 'Manage Team', 'fa-users', null, true, '/teams/migrate', 10, 'user');\n        } else if ($eaTeamManagement.isAdminInAtLeastOneTime(profile)) {\n          $toolbar.addItem('user.manageTeams', 'Manage Team', 'fa-users', null, true, function() {\n            $scope.openTeamChooser(profile, activeTeam, 'admin', $eaSession2.getSession()).then(function(selectedTeamId) {\n              $state.go('authorized.teamsManage', {teamid: selectedTeamId});\n            });\n          }, 10, 'user');\n        }\n\n\n        if ($eaConfig.features.billing) {\n          $toolbar.addItem('user.billing', 'Billing', 'fa-dollar', null, true, '/billing', 20, 'user');\n        }\n\n        if ($location.path().indexOf('/csp') === 0) {\n          $toolbar.addItem('user.csp', 'My Spending Portal', 'fa-bar-chart', null, true, '/signin?csp=false', 25, 'user');\n        }\n\n        if ($eaTeamManagement.isAdminInAtLeastOneTime(profile)) {\n          $toolbar.addItem('user.reportcenter', 'Report Center', 'fa-pie-chart', null, true, function () {\n\n            if ($stateParams.teamid) {\n              $window.location.href = '/app2/teams/' + $stateParams.teamid + '/apps/reportcenter';\n            } else if ($location.path().indexOf('/csp') === 0) {\n              $window.location.href = '/app2/teams/' + $stateParams.resellerId + '/apps/reportcenter';\n            }\n          }, 28, 'user');\n        }\n        \n        if ($eaConfig.features && $eaConfig.features.support) {\n          $toolbar.addItem('user.feedback', 'Your Feedback', 'fa-lightbulb-o', null, true, 'https://azurecostmonitor.uservoice.com/', 30, 'user');\n          $toolbar.addItem('user.support', 'Contact Support', 'fa-support', null, true, 'https://azurecostmonitor.uservoice.com/', 40, 'user');\n        }\n\n        $toolbar.addItem('user.divider', 'DIVIDER', null, null, true, null, 50, 'user');\n\n        if ($scope.currentSession.hasClaim('ops')) {\n          $toolbar.addItem('ops.admin', 'Admin', 'fa-user-secret', null, true, '/admin/users', 70, 'user');\n          $toolbar.addItem('ops.divider', 'DIVIDER', null, null, true, null, 80, 'user');\n        }\n\n        if ($scope.currentSession.IdentityProvider === 'actAs') {\n          $toolbar.addItem('user.leaveActAs', 'Leave Act-As', 'fa-sign-out', null, true, $scope.leaveActAs, 90, 'user');\n        } else {\n          $toolbar.addItem('user.refreshSession', 'Refresh Session', 'fa-refresh', null, true, $scope.refreshSession, 100, 'user');\n          $toolbar.addItem('user.profile', 'Profile', 'fa-user', null, true, $scope.visitProfile, 110, 'user');\n          $toolbar.addItem('user.signout', 'Sign Out', 'fa-power-off', null, true, $scope.signOut, 120, 'user');\n        }\n\n        // Notifications Panel operation\n        $toolbar.addItem('notificationsPane.General', '', 'fa-bell-o', \"Open the notifications panel\", true, $scope.toggleNotificationsPanel);\n      });\n    }\n  }\n\n  function adaptHeaderWidth() {\n    if ($location.path() === '/') {\n      $scope.fullWidthHeader = false;\n    } else {\n      $scope.fullWidthHeader = true;\n    }\n  }\n\n  // handle toolbar updates\n  $toolbar.onUpdate( function() {\n    adaptHeaderWidth();\n    $scope.toolbarItems = $toolbar.items;\n  });\n\n  // handle session updates\n  $eaSession2.onUpdate(function() {\n    updateNavBarBasicMenu();\n  });\n\n  $eaSession2.onDestroying(function() {\n    updateNavBarBasicMenu();\n  });\n\n  $rootScope.$on('$stateChangeSuccess', function() {\n    updateNavBarBasicMenu();\n  });\n\n  $eaBranding.onUpdate(function() {\n    $scope.title = $eaBranding.currentCompanyInformation.title;\n  });\n\n  $scope.toggleNotificationsPanel = function () {\n    if ($eaNotificationCenter.isOpen()) {\n      $eaNotificationCenter.close();\n    } else {\n      $eaNotificationCenter.show();\n    }\n  };\n\n  // Manages the mobile menu when the browser window is too small\n  $scope.toggleMobileNavMenuClasses = '';\n  $scope.toggleMobileNavMenu = function() {\n    if ($scope.toggleMobileNavMenuClasses === 'open-nav') {\n      $scope.toggleMobileNavMenuClasses = '';\n    } else {\n      $scope.toggleMobileNavMenuClasses = 'open-nav';\n    }\n  };\n\n  // initialize the navbar\n  updateNavBarBasicMenu();\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaListView', function () {\n  return {\n    template: '<ng-transclude></ng-transclude>',\n    restrict: 'C',\n    controller: 'EaListViewCtrl',\n    scope: true,\n    transclude: true\n  };\n}).controller('EaListViewCtrl', function() {\n\n\n});\n\nangular.module('azureCostsFeApp').directive('eaListViewItem', function () {\n  return {\n    template: '<ng-transclude></ng-transclude>',\n    restrict: 'C',\n    controller: 'EaListViewItemCtrl',\n    scope: {\n      item: '=',\n      onCollapse: '&'\n    },\n    transclude: true,\n    link: function(scope, element) {\n      scope.initializeWithElement(element);\n    }\n  };\n}).controller('EaListViewItemCtrl', ['$scope', function($scope) {\n  var htmlElement;\n\n  // define the state\n  $scope.subItemsCollapsed = true;\n\n  // Initializes the controller and will be called from the link function\n  $scope.initializeWithElement = function(element) {\n    htmlElement = element;\n\n    // collapse the element\n    htmlElement.find('.ea-list-view-subitems').addClass('collapse');\n\n    // check what we have open or not\n    if (htmlElement.find('.ea-list-view-subitems').hasClass('open')) {\n      $scope.subItemsCollapsed = false;\n    }\n\n    // inject the click binding for toggling state\n    htmlElement.find('.ea-list-view-item-content').bind('click', function(e) {\n      if (angular.element(e.target).hasClass('ea-list-view-item-content') || angular.element(e.target).parent('a').length === 0) {\n        $scope.subItemsCollapsed = !$scope.subItemsCollapsed;\n        $scope.$apply();\n        e.preventDefault();\n      }\n    });\n  };\n\n  // change the classes in html element when the collapsed property is changed\n  $scope.$watch('subItemsCollapsed', function() {\n\n    if ($scope.subItemsCollapsed) {\n      htmlElement.find('.ea-list-view-subitems.collapse').removeClass('in');\n    } else {\n      htmlElement.find('.ea-list-view-subitems.collapse').addClass('in');\n    }\n\n    $scope.onCollapse({ item: $scope.item, open: !$scope.subItemsCollapsed});\n  });\n}]);\n","'use strict';\n\n/**\n * @ngdoc directive\n * @name azureCostsFeApp.directive:eaNavbar\n * @description\n * # eaNavbar\n */\nangular.module('azureCostsFeApp').directive('eaFileDropZone', function () {\n  return {\n    templateUrl: 'views/directive_ea_file_drop_zone.html',\n    restrict: 'C',\n    controller: 'EaFileDropZoneCtrl',\n    scope: {\n      image: '=',\n      upload: '&'\n    },\n    link: function(scope, element, attrs, controller) {\n        controller.init(element);\n    }\n  };\n}).controller('EaFileDropZoneCtrl', ['$scope', function($scope) {\n    var self = this;\n\n    var htmlElement = null;\n\n    $scope.handleDrop = function(e) {\n\n      // prevent standard behaviour\n      e.stopPropagation();\n      e.preventDefault();\n\n      // check if we have no file\n      if (event.dataTransfer.files.length === 0) {\n        return;\n      }\n\n      // collect file to transfer\n      var fileToUpload = event.dataTransfer.files[0];\n\n      // set the image in the tag\n      var reader = new FileReader();\n      reader.onload = function (e) {\n        $scope.image = e.target.result;\n        $scope.$apply();\n      };\n      reader.readAsDataURL(fileToUpload);\n\n      // upload the file in his original location\n      $scope.upload({ image: fileToUpload}).catch(function() {\n        // handle error\n        $scope.image = undefined;\n        $scope.$apply();\n      });\n    };\n\n    self.init = function(element) {\n      htmlElement = element;\n\n      // establish the listener\n      var dropBox = angular.element(htmlElement).find('.drop-box');\n\n      // enabled drag and drop operations\n      dropBox.bind('dragover', function (e) {\n        e.stopPropagation();\n        e.preventDefault();\n      });\n\n      // handles the drop\n      dropBox.bind('drop', $scope.handleDrop);\n    };\n\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaTagList', function () {\n  return {\n    templateUrl: 'views/directive_ea_tag_list.html',\n    restrict: 'C',\n    controller: 'EaTagListCtrl',\n    scope: {\n      service: '=',\n      tagProperty: '=',\n      tagAdded: '&',\n      tagRemoved: '&',\n      tagAutoComplete: '&'\n    }\n  };\n}).controller('EaTagListCtrl', ['$scope', function($scope) {\n\n  // defines a couple standard keys\n  var KEYS = {\n    backspace: 8,\n    tab: 9,\n    enter: 13,\n    escape: 27,\n    space: 32,\n    up: 38,\n    down: 40,\n    comma: 188\n  };\n\n  $scope.currentTagValue = undefined;\n  $scope.currentTagProposal = [];\n\n  $scope.reset = function() {\n    $scope.currentTagValue = undefined;\n    $scope.currentTagProposal = [];\n  };\n\n  $scope.onSubmit = function() {\n    // add the tag\n    $scope.tagAdded({service: $scope.service, tag: $scope.currentTagValue});\n\n    // reset the form\n    $scope.reset();\n  };\n\n  $scope.onRemove = function(tag) {\n    $scope.tagRemoved({service: $scope.service, tag: tag});\n  };\n\n  $scope.onKey = function(event) {\n\n    if (event) {\n\n      // check if we have hotkeys\n      if (event.keyCode === KEYS.escape) {\n\n        // reset\n        $scope.reset();\n\n        // prevent default behaviour\n        event.preventDefault();\n\n        // done\n        return;\n      }\n    }\n\n    // check if we have an empty query\n    if ($scope.currentTagValue === '') {\n\n      // reset\n      $scope.reset();\n    }\n\n    // query for tag proposals\n    $scope.currentTagProposal = $scope.tagAutoComplete({service: $scope.service, query: $scope.currentTagValue});\n  };\n\n  $scope.onTagSelected = function(tagValue) {\n    $scope.currentTagValue = tagValue;\n    $scope.onSubmit();\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaBrandingTheme', function() {\n  return {\n    restrict: 'C',\n    templateUrl: 'views/directive_ea_branding_theme.html',\n    controller: 'EaBrandingCtrl',\n    scope: true\n  };\n}).controller('EaBrandingCtrl', ['$scope', '$eaBranding', function($scope, $eaBranding) {\n\n  // set the default values\n  $scope.colors = $eaBranding.currentColors;\n  $scope.customCss = $eaBranding.currentCustomCss;\n\n  // establish an update handler\n  $eaBranding.onUpdate(function() {\n\n    // set the updatd values\n    $scope.colors = $eaBranding.currentColors;\n    $scope.customCss = $eaBranding.currentCustomCss;\n  });\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaTrial', function () {\n  return {\n    templateUrl: 'views/directive_ea_trial.html',\n    restrict: 'C',\n    controller: 'EaTrialCtrl',\n    scope: {\n      team: '=',\n      profile: '='\n    }\n  };\n}).controller('EaTrialCtrl', function($scope, $eaBilling, $eaUserProfile, $eaConfig) {\n\n  $scope.open = false;\n  $scope.showTrial = $eaConfig.features.billing;\n\n  $scope.toggleState = function() {\n    $scope.open = !$scope.open;\n  };\n\n  function setTrialSettings() {\n    if ($scope.team && $scope.profile && $eaBilling.isInTrial($scope.team)) {\n      $scope.trialEnds = $scope.team.TrialEnds;\n\n      var teamFromProfile = $eaUserProfile.getTeam($scope.profile, $scope.team.Id);\n      $scope.isAccountOwner = $eaBilling.isAccountOwner($scope.profile.UserId, teamFromProfile);\n    }\n  }\n\n  $scope.$watch('team', function () {\n    setTrialSettings();\n  });\n\n  $scope.$watch('profile', function () {\n    setTrialSettings();\n  });\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaUpgradePlan', function () {\n  return {\n    templateUrl: 'views/directive_ea_upgrade_plan.html',\n    restrict: 'C',\n    transclude: true,\n    controller: 'EaUpgradePlanCtrl',\n    scope: {\n      team: '=',\n      requiredPlan: '=',\n      realElement: '=',\n      onAction: '&'\n    }\n  };\n}).controller('EaUpgradePlanCtrl', function($q, $element, $scope, $eaSession2, $eaBilling, $eaUserProfile, $state, $eaConfig) {\n\n  $scope.showTrial = $eaConfig.features.billing;\n\n  var loadTeamPromise = null;\n\n  if (typeof $scope.team === 'string') {\n    loadTeamPromise = $eaUserProfile.load($eaSession2.getSession().DataToken).then(function(userProfile) {\n      // get the team profile\n      $scope.team = $eaUserProfile.getTeam(userProfile, $scope.team);\n    });\n  } else {\n    loadTeamPromise = $q.when();\n  }\n\n  loadTeamPromise.then(function() {\n    $scope.trialPossible = false;\n\n    // check if we have the required plan\n    if ($eaBilling.hasRequiredPlan($scope.team.AccountPlan, $scope.requiredPlan)) {\n\n      // if so hide the element\n      angular.element($element).addClass('hidden');\n\n      // show the real element\n      if ($scope.realElement) { angular.element('#' + $scope.realElement).removeClass('hidden'); }\n\n    } else {\n\n      // if not show the element\n      angular.element($element).removeClass('hidden');\n\n      // hide the real element\n      if ($scope.realElement) { angular.element('#' + $scope.realElement).addClass('hidden'); }\n\n    }\n\n    // just define if it's possible to start a trial\n    $scope.trialPossible = !$eaBilling.hasEverStartedTrial($scope.team);\n\n    // check if caller is account owner\n    $scope.isAccountOwner = $eaBilling.isAccountOwner($eaSession2.getSession().UserId, $scope.team);\n\n  });\n\n  $scope.startTrial = function() {\n    // notify the coller\n    if ($scope.onAction) { $scope.onAction(); }\n\n    // start the trial\n    $state.go('authorized.profileBillingStartTrial');\n  };\n\n  $scope.upgradePlan = function() {\n\n    // notify the caller\n    if ($scope.onAction) { $scope.onAction(); }\n\n    // navigate to the scope\n    $state.go('authorized.profileBillingUpgradeEdition');\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').directive('eaFilterPanel', function () {\n  return {\n    templateUrl: 'views/directive_ea_filter_panel.html',\n    restrict: 'C',\n    controller: 'EaFilterPanelCtrl',\n    scope: {\n      filter: '=',\n      userId: '=',\n      teamId: '=',\n      teamRole: '=',\n      fields: '=',\n      save: '&',\n      share: '&',\n      unshare: '&'\n    }\n  };\n}).controller('EaFilterPanelCtrl', function($scope, $eaFilterPanel) {\n\n    // This section implements the filter state in the user interface. When the filter is not collapsed\n    // the user can see the filter editor\n    $scope.collapsed = true;\n\n    $scope.toggleEditor = function() {\n      $scope.collapsed = !$scope.collapsed;\n    };\n\n    // observes the filter element to make a couple UI decissions\n    $scope.$watch('filter', function () {\n\n      // create a duplicate of the filter\n      $scope.filterWorkingCopy = $eaFilterPanel.buildFilter($scope.userId);\n      $eaFilterPanel.updateFilterWithFilter($scope.filter, $scope.filterWorkingCopy);\n\n      // collapse or ellapse the panel\n      if ($scope.collapsed && $scope.filterWorkingCopy) {\n        $scope.collapsed = ($scope.filterWorkingCopy.Id !== null);\n      }\n    }, true);\n\n    // Defines available information for the UI\n    $scope.operators = $eaFilterPanel.availableOperations;\n    $scope.fieldModels = $eaFilterPanel.buildFieldModelsFromArray($scope.fields);\n\n    $scope.conditions = $eaFilterPanel.availableConditions;\n\n    // Allows to add an condition\n    $scope.addCondition = function () {\n      $scope.filterWorkingCopy.Rules.push($eaFilterPanel.buildRule('AND'));\n    };\n\n    // Removes a rule\n    $scope.removeCondition = function (index) {\n      $scope.filterWorkingCopy.Rules.splice(index, 1);\n    };\n\n    // Delegates the save operation to parent\n    $scope.saveFilter = function() {\n      // replicate the filter\n      $eaFilterPanel.updateFilterWithFilter($scope.filterWorkingCopy, $scope.filter);\n\n      // save it via parent\n      $scope.save({teamFilter: $scope.filterWorkingCopy.TeamId === 'personal' ? false : true});\n    };\n\n    $scope.shareFilter = function() {\n      // replicate the filter\n      $eaFilterPanel.updateFilterWithFilter($scope.filterWorkingCopy, $scope.filter);\n\n      // save it via parent\n      $scope.share();\n    };\n\n    $scope.unShareFilter = function() {\n      // replicate the filter\n      $eaFilterPanel.updateFilterWithFilter($scope.filterWorkingCopy, $scope.filter);\n\n      // save it via parent\n      $scope.unshare();\n    };\n\n}).service('$eaFilterPanel', function(){\n  var self = this;\n\n  self.buildFilter = function(owner) {\n    return {\n        Id: null,\n        Name: 'New Filter',\n        TeamId: 'personal',\n        Owner: owner,\n        Rules: [\n          {\n            Operator: 'WHERE',\n            Field: null,\n            Condition: null,\n            Value: null,\n            Compare: 'CaseSensitive'\n          }\n        ]\n      };\n  };\n\n  self.buildRule = function(operator) {\n    return {\n        Operator: operator,\n           Field: null,\n       Condition: null,\n           Value: null,\n         Compare: 'CaseSensitive'\n    };\n  };\n\n  self.updateFilterWithFilter = function(srcFilter, targetFilter) {\n    targetFilter.Id = srcFilter.Id;\n    targetFilter.Name = srcFilter.Name;\n    targetFilter.Owner = srcFilter.Owner;\n    targetFilter.TeamId = srcFilter.TeamId;\n\n    // remove the rules\n    targetFilter.Rules = [];\n\n    // copy the rules\n    srcFilter.Rules.forEach(function(rule) {\n      var ruleCopy = self.buildRule(rule.Operator);\n      ruleCopy.Field = rule.Field;\n      ruleCopy.Condition = rule.Condition;\n      ruleCopy.Value = rule.Value;\n      ruleCopy.Compare = rule.Compare;\n      targetFilter.Rules.push(ruleCopy);\n    });\n  };\n\n  self.buildFieldModelsFromArray = function(fields) {\n    return fields.map(function(f) {\n      return { name: f };\n    });\n  };\n\n  self.availableOperations  = [\n    { name: 'AND' },\n    { name: 'OR' }\n  ];\n\n  self.availableConditions = [\n    { name: '=' },\n    { name: '<>' },\n    { name: '<' },\n    { name: '<=' },\n    { name: '>' },\n    { name: '>=' },\n    { name: 'contains' },\n    { name: 'notContains' },\n    { name: 'startsWith' },\n    { name: 'notStartsWith' },\n    { name: 'hasValue' }\n  ];\n\n});\n","'use strict';\n\n/**\n * @ngdoc service\n * @name azureCostsFeApp.eaBackend\n * @description\n * # eaBackend\n * Service in the azureCostsFeApp.\n */\nangular.module('azureCostsFeApp').service('$eaBackendDataModeSelector', function eaBackend() {\n    var self = this;\n\n    self.BillingCycleActive = false;\n    self.BillingCycleDay = 1;\n    self.NoMargin = false;\n\n    self.enableBillingCycle = function(enable, day) {\n      self.BillingCycleActive = enable;\n      self.BillingCycleDay = day ? day : 1;\n    };\n\n    self.isBillingCycleEnabled = function() {\n      return self.BillingCycleActive;\n    };\n\n    self.getBillingCycleDay = function() {\n      return self.BillingCycleDay;\n    };\n\n    self.enableNoMargin = function(enable) {\n      self.NoMargin = enable;\n    };\n\n    self.isNoMarginEnabled = function() {\n      return self.NoMargin;\n    }\n\n}).service('$eaBackend', function eaBackend($eaBackendAzure, $eaBackendAzureV2, $eaBackendDataModeSelector, $q) {\n    var self = this;\n\n    self.stsUpdateToken = function(options, dataToken) {\n      return $eaBackendAzure.stsUpdateToken(options, dataToken);\n    };\n\n    self.dataPostProfileTouch = function(dataToken) {\n        return $eaBackendAzure.dataPostProfileTouch(dataToken);\n    };\n\n    self.dataGetProfile = function(dataToken) {\n        return $eaBackendAzure.dataGetProfile(dataToken);\n    };\n\n    self.dataUpdateProfile = function(profileProperties, dataToken) {\n        return $eaBackendAzure.dataUpdateProfile(profileProperties, dataToken);\n    };\n\n    self.dataGetContracts = function(teamId, dataToken) {\n        return $eaBackendAzure.dataGetContracts(teamId, dataToken);\n    };\n\n    self.dataGetContract = function(teamId, contract, dataToken) {\n        return $eaBackendAzure.dataGetContract(teamId, contract, dataToken);\n    };\n\n    self.dataGetContractInfo = function(teamId, contract, dataToken) {\n      return $eaBackendAzureV2.dataGetContractInfo(teamId, contract, dataToken);\n    };\n\n    self.dataPostPurgeContractReports = function(teamId, contract, dataToken) {\n      return $eaBackendAzureV2.dataPostPurgeContractReports(teamId, contract, dataToken);\n    };\n\n    self.dataGetContractSubscriptions = function(teamId, contract, dataToken, options) {\n        return $eaBackendAzure.dataGetContractSubscriptions(teamId, contract, dataToken, options);\n    };\n\n    self.dataGetContractSubscriptionsVerifyConnection = function(teamId, contract, subscriptionId, offerid, country, currency, dataToken) {\n        return $eaBackendAzure.dataGetContractSubscriptionsVerifyConnection(teamId, contract, subscriptionId, offerid, country, currency, dataToken);\n    };\n\n    self.dataPutContractSubscription = function(teamId, contract, subscriptionId, updatedFields, dataToken) {\n        return $eaBackendAzure.dataPutContractSubscription(teamId, contract, subscriptionId, updatedFields, dataToken);\n    };\n\n    self.dataGetContractReports = function(teamId, contract, dataToken) {\n        return $eaBackendAzureV2.dataGetContractReportsV2(teamId, contract, dataToken);\n    };\n\n    self.dataGetContractReportData = function(teamId, contract, report, cacheIdentifier, dataToken, retry) {\n        return $eaBackendAzure.dataGetContractReportData(teamId, contract, report, cacheIdentifier, dataToken, retry);\n    };\n\n    self.dataGetContractReportDataV3 = function(teamId, contract, report, cacheIdentifier, dataToken, retry) {\n      return $eaBackendAzureV2.dataGetContractReportDataV3(teamId, contract, report, cacheIdentifier, dataToken, retry);\n    };\n\n    self.dataRegisterContract = function(teamid, contract, token, dataToken) {\n      return $eaBackendAzure.dataRegisterContract(teamid, contract, token, dataToken);\n    };\n\n    self.dataPostRatePlanRegistrationId = function(teamid, callbackUri, directoryDomain, defaultCurrency, dataToken) {\n      return $eaBackendAzure.dataPostRatePlanRegistrationId(teamid, callbackUri, directoryDomain, defaultCurrency, dataToken);\n    };\n\n    self.dataAllSyncReports = function(team, contract, dataToken) {\n      return $eaBackendAzure.dataAllSyncReports(team, contract, dataToken);\n    };\n\n    self.dataMonthSyncReports = function(team, contract, month, dataToken) {\n      return $eaBackendAzure.dataMonthSyncReports(team, contract, month, dataToken);\n    };\n\n    self.dataMonthSyncReportsV2 = function(teamid, contract, months, dataToken)\n    {\n      return $eaBackendAzureV2.dataMonthSyncReportsV2(teamid, contract, months, dataToken);\n    };\n\n    self.dataUpdateContract = function(teamid, contract, contractInformation, dataToken) {\n        return $eaBackendAzure.dataUpdateContract(teamid, contract, contractInformation, dataToken);\n    };\n\n    self.dataDeleteContract = function(teamid, contract, dataToken) {\n        return $eaBackendAzureV2.dataDeleteContract(teamid, contract, dataToken);\n    };\n\n    self.dataSetServiceTagsV1 = function(teamid, contract, serviceName, serviceTags, dataToken) {\n      return $eaBackendAzure.dataSetServiceTagsV1(teamid, contract, serviceName, serviceTags, dataToken);\n    };\n\n    self.dataSetServiceTagsV2 = function(teamid, contract, serviceName, serviceType, serviceTags, dataToken) {\n      return $eaBackendAzure.dataSetServiceTagsV2(teamid, contract, serviceName, serviceType, serviceTags, dataToken);\n    };\n\n    self.dataSetServiceTagsV3 = function(teamid, contract, serviceName, serviceType, serviceSubscriptionId, serviceTags, dataToken) {\n      return $eaBackendAzure.dataSetServiceTagsV3(teamid, contract, serviceName, serviceType, serviceSubscriptionId, serviceTags, dataToken);\n    };\n\n    self.dataSetServiceTagsV4 = function(teamid, contract, serviceId, serviceTags, dataToken) {\n      return $eaBackendAzureV2.dataSetServiceTagsV4(teamid, contract, serviceId, serviceTags, dataToken);\n    };\n\n    /*\n     * History API\n     */\n    self.dataGetContractReportHistory = function(teamid, contract, dataToken) {\n      return $eaBackendAzure.dataGetContractReportHistory(teamid, contract, dataToken);\n    };\n\n    self.dataGetContractReportHistoryV3 = function(teamid, contract, cacheIdentifier, dataToken, retry) {\n      return $eaBackendAzureV2.dataGetContractReportHistoryV3(teamid, contract, cacheIdentifier, dataToken, retry);\n    };\n\n    /*\n     * MetaData API\n     */\n    self.dataGetMetadata = function(collection, dataToken) {\n      return $eaBackendAzure.dataGetMetadata(collection, dataToken);\n    };\n\n    /*\n     * Team API\n     */\n    self.dataMigrateToTeamAccount = function(teamName, dataToken) {\n        return $eaBackendAzure.dataMigrateToTeamAccount(teamName, dataToken);\n    };\n\n    self.dataGetTeamProfile = function(teamid, members, dataToken) {\n        return $eaBackendAzure.dataGetTeamProfile(teamid, members, dataToken);\n    };\n\n    self.dataInviteUserToTeam = function(teamid, contact, role, subscriptions, callback, dataToken) {\n        return $eaBackendAzure.dataInviteUserToTeam(teamid, contact, role, subscriptions, callback, dataToken);\n    };\n\n    self.dataInviteUserToTeamV2 = function(teamid, contact, role, fullAccess, callback, dataToken) {\n      return $eaBackendAzureV2.dataInviteUserToTeamV2(teamid, contact, role, fullAccess, callback, dataToken);\n    };\n\n    self.dataReInviteUserToTeam = function(teamid, invitationid, callback, dataToken) {\n        return $eaBackendAzure.dataReInviteUserToTeam(teamid, invitationid, callback, dataToken);\n    };\n\n    self.dataRemoveUserFromTeam = function(teamid, userid, dataToken) {\n        return $eaBackendAzure.dataRemoveUserFromTeam(teamid, userid, dataToken);\n    };\n\n    self.dataUpdateTeamProfile = function(teamid, profile, dataToken) {\n        return $eaBackendAzure.dataUpdateTeamProfile(teamid, profile, dataToken);\n    };\n\n    self.dataUpdateTeamImage = function(teamid, teamImageFile, dataToken) {\n        return $eaBackendAzure.dataUpdateTeamImage(teamid, teamImageFile, dataToken);\n    };\n\n    self.dataUpdateTeamMembership = function(teamid, userid, role, subscriptions, contact, dataToken) {\n        return $eaBackendAzure.dataUpdateTeamMembership(teamid, userid, role, subscriptions, contact, dataToken);\n    };\n\n    self.dataRegisterAppToTeam = function(teamid, name, clientId, clientSecret, role, subscriptions, dataToken) {\n        return $eaBackendAzure.dataRegisterAppToTeam(teamid, name, clientId, clientSecret, role, subscriptions, dataToken);\n    };\n\n    self.dataRegisterUserToTeam = function(teamid, contact, role, subscriptions, dataToken) {\n      return $eaBackendAzure.dataRegisterUserToTeam(teamid, contact, role, subscriptions, dataToken);\n    };\n\n    self.dataGetTeamImageLocation = function(teamid, dataToken) {\n        return $eaBackendAzure.dataGetTeamImageLocation(teamid, dataToken);\n    };\n\n    self.helperGetAvailableSubscriptions = function(teamid, dataToken) {\n      var defer = $q.defer();\n\n      // query the contracts\n      self.dataGetContracts(teamid, dataToken).then(function(contracts) {\n\n          var subscritpionsForContractPromisses = [];\n          var contractsCollection = [];\n          contracts.forEach(function(contract) {\n              contractsCollection.push(contract);\n              subscritpionsForContractPromisses.push(self.dataGetContractSubscriptions(teamid, contract.Enrollment, dataToken));\n          });\n\n          return $q.all(subscritpionsForContractPromisses).then(function(results) {\n\n              var resultModel  = [];\n              results.forEach(function(result, idx) {\n                resultModel.push({ Contract: contractsCollection[idx], Subscriptions: result});\n              });\n\n              defer.resolve(resultModel);\n          });\n      }).catch(function(error) {\n          defer.reject(error);\n      });\n\n      return defer.promise;\n    };\n\n    /*\n     * Notification Settings API\n     */\n    self.dataGetContractNotifcationSettings = function(teamid, contract, dataToken) {\n      return $eaBackendAzure.dataGetContractNotifcationSettings(teamid, contract, dataToken);\n    };\n\n    self.dataGetContractNotifcationSettingsForUser = function(teamid, contract, targetUserId, dataToken) {\n      return $eaBackendAzure.dataGetContractNotifcationSettingsForUser(teamid, contract, targetUserId, dataToken);\n    };\n\n    self.updateGetContractNotifcationSettings = function(teamid, contract, notificationSettings, dataToken, options) {\n      return $eaBackendAzure.updateGetContractNotifcationSettings(teamid, contract, notificationSettings, dataToken, options);\n    };\n\n    self.updateGetContractNotifcationSettingsForUser = function(teamid, contract, targetUserId, notificationSettings, dataToken, options) {\n      return $eaBackendAzure.updateGetContractNotifcationSettingsForUser(teamid, contract, targetUserId, notificationSettings, dataToken, options);\n    };\n\n    self.triggerContractNotificationForUser = function(teamId, userId, contractId, dataToken) {\n      return $eaBackendAzureV2.triggerContractNotificationForUser(teamId, userId, contractId, dataToken);\n    };\n\n    /*\n     * Branding API\n     */\n    self.dataUpdateBranding = function(teamid, brandingSettings, dataToken) {\n      return $eaBackendAzure.dataUpdateBranding(teamid, brandingSettings, dataToken);\n    };\n\n    self.dataGetBranding = function(teamid) {\n      return $eaBackendAzure.dataGetBranding(teamid);\n    };\n\n    self.dataGetBucket = function(bucketname) {\n      return $eaBackendAzure.dataGetBucket(bucketname);\n    };\n\n    self.dataGetTeamBuckets = function(teamid, dataToken) {\n      return $eaBackendAzure.dataGetTeamBuckets(teamid, dataToken);\n    };\n\n    self.dataCreateTeamBucket = function(teamid, bucketName, dataToken) {\n      return $eaBackendAzure.dataCreateTeamBucket(teamid, bucketName, dataToken);\n    };\n\n    self.dataDeleteTeamBucket = function(teamid, bucketName, dataToken) {\n      return $eaBackendAzure.dataDeleteTeamBucket(teamid, bucketName, dataToken);\n    };\n\n    /*\n     * Azure AAD API (Data Token required)\n     */\n    self.dataGetAADConnections = function(teamid, dataToken) {\n      return $eaBackendAzure.dataGetAADConnections(teamid, dataToken);\n    };\n\n    self.dataRegisterAADConnection = function(teamid, connectionData, dataToken) {\n      return $eaBackendAzure.dataRegisterAADConnection(teamid, connectionData, dataToken);\n    };\n\n    self.dataDeleteAADConnection = function(teamid, aadId, dataToken) {\n      return $eaBackendAzure.dataDeleteAADConnection(teamid, aadId, dataToken);\n    };\n\n    self.dataGetAuthInformation = function(teamid) {\n      return $eaBackendAzure.dataGetAuthInformation(teamid);\n    };\n\n    self.dataGetAADConnectionGroups = function(teamid, tenantId, dataToken) {\n      return $eaBackendAzure.dataGetAADConnectionGroups(teamid, tenantId, dataToken);\n    };\n\n    /*\n     * Billing API\n     */\n    self.dataStartTrial = function(plan, dataToken) {\n      return $eaBackendAzure.dataStartTrial(plan, dataToken);\n    };\n\n    self.dataPurchase = function(plan, dataToken) {\n      return $eaBackendAzure.dataPurchase(plan, dataToken);\n    };\n\n\n    self.dataUpdateBillingInformation = function(billingAddress, dataToken) {\n      return $eaBackendAzure.dataUpdateBillingInformation(billingAddress, dataToken);\n    };\n\n    self.dataGetBillingInformation = function(dataToken) {\n      return $eaBackendAzure.dataGetBillingInformation(dataToken);\n    };\n\n    /*\n     * Data Filter API\n     */\n    self.dataCreateDataFilter = function(teamid, resourceCollection, filter, dataToken) {\n      return $eaBackendAzure.dataCreateDataFilter(teamid, resourceCollection, filter, dataToken);\n    };\n\n    self.dataGetDataFilters = function(teamid, resourceCollection, dataToken) {\n      return $eaBackendAzure.dataGetDataFilters(teamid, resourceCollection, dataToken);\n    };\n\n    self.dataUpdateDataFilter = function(teamid, resourceCollection, filter, dataToken) {\n      return $eaBackendAzure.dataUpdateDataFilter(teamid, resourceCollection, filter, dataToken);\n    };\n\n    self.dataRemoveDataFilter = function(teamid, resourceCollection, filterid, dataToken) {\n      return $eaBackendAzure.dataRemoveDataFilter(teamid, resourceCollection, filterid, dataToken);\n    };\n\n    /*\n     * CSP\n     */\n    self.dataCspEnroll = function(teamName, dataToken) {\n      return $eaBackendAzure.dataCspEnroll(teamName, dataToken);\n    };\n\n    self.dataCspGetAccounts = function(teamId, dataToken) {\n      return $eaBackendAzure.dataCspGetAccounts(teamId, dataToken);\n    };\n\n    self.dataCspGetAccount = function(teamId, accountId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetAccount(teamId, accountId, dataToken).then(function(account) {\n        return {\n          AccountId: accountId,\n          TeamId: teamId,\n          Name: account.name,\n          ClientId: account.clientId,\n          ClientSecret: account.clientSecret,\n          Domain: account.domain,\n          Currency:account.currency,\n          Country:account.country,\n          BillingDay:account.billingDay,\n          TierLevel:account.tierLevel,\n          SyncCustomers:account.syncCustomers,\n          AutoActivateCustomers:account.autoActivateCustomers,\n          DefaultResellerManagement:account.defaultResellerManagement,\n          ExchangeRate:account.exchangeRate,\n          TokenExpires:account.tokenExpires\n        };\n      });\n    };\n\n    self.dataCspRegisterAccount = function(teamId, name, clientId, clientSecret, domain, billingDay, syncCustomers, autoActivateCustomers, dataToken) {\n      return $eaBackendAzureV2.dataCspRegisterAccountT1V2(teamId, name, clientId, clientSecret, domain, billingDay, syncCustomers, autoActivateCustomers, dataToken);\n    };\n\n    self.dataCspRegisterAccountT2 = function(teamId, name, currency, country, billingDay, dataToken) {\n      return $eaBackendAzure.dataCspRegisterAccountT2(teamId, name, currency, country, billingDay, dataToken);\n    };\n\n    self.dataCspRegisterAccountEA = function(teamId, name, currency, token, cmapping, dataToken) {\n      return $eaBackendAzureV2.dataCspRegisterAccountEAV2(teamId, name, currency, token, cmapping, dataToken);\n    };\n\n    self.dataCspRegisterAccountV1 = function(teamId, name, currency, dataToken) {\n      return $eaBackendAzureV2.dataCspRegisterAccountV1(teamId, name, currency, dataToken);\n    };\n\n    self.dataCspRegisterAccountDemo = function(teamId, name, contractType, currency, cmapping, dataToken) {\n      return $eaBackendAzureV2.dataCspRegisterAccountDemo(teamId, name, contractType, currency, cmapping, dataToken);\n    };\n\n    self.dataCspUpdateAccountAWSV2 = function(teamId, accountId, name, currency, exchangeRate, defaultResellerManagement, dataToken) {\n      return $eaBackendAzureV2.dataCspUpdateAccountAWSV2(teamId, accountId, name, currency, exchangeRate, defaultResellerManagement, dataToken);\n    };\n\n    self.dataCspUpdateAccount = function(teamId, accountId, name, clientId, clientSecret, domain, billingDay, dataToken) {\n      return $eaBackendAzure.dataCspUpdateAccount(teamId, accountId, name, clientId, clientSecret, domain, billingDay, dataToken);\n    };\n\n    self.dataCspDeleteAccount = function(teamId, accountId, dataToken) {\n      return $eaBackendAzure.dataCspDeleteAccount(teamId, accountId, dataToken);\n    };\n\n    self.dataCspSyncAccount = function(teamId, accountId, dataToken) {\n      return $eaBackendAzureV2.dataCspSyncAccount(teamId, accountId, dataToken);\n    };\n\n    self.dataCspUpdateVirtualMetersForCustomerInAccount = function(teamId, accountId, customerId, month, dataToken) {\n      return $eaBackendAzureV2.dataCspUpdateVirtualMetersForCustomerInAccount(teamId, accountId, customerId, month, dataToken);\n    };\n\n    self.dataCspRegisterCustomer = function(teamId, accountId, tenantIdOrDomain, dataToken) {\n      return $eaBackendAzureV2.dataCspRegisterCustomer(teamId, accountId, tenantIdOrDomain, dataToken);\n    };\n\n    self.dataCspRegisterCostMgntCustomer = function(teamId, accountId, customerName, hasConsumption, dataToken) {\n    return $eaBackendAzureV2.dataCspRegisterCostMgntCustomer(teamId, accountId, customerName, hasConsumption, dataToken);\n  };\n\n    self.dataCspGetCustomersInAccount = function(teamId, accountId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetCustomersInAccount(teamId, accountId, dataToken);\n    };\n\n    self.dataCspGetCustomersSpendingsInAccountV2 = function(viewId, teamId, accountId, month, dataToken, cacheIdentifierMap, retry) {\n      return $eaBackendAzureV2.dataCspGetCustomersSpendingsInAccountV2(viewId, teamId, accountId, month, dataToken, cacheIdentifierMap, retry);\n    };\n\n    self.dataCspActiveCustomersInAccount = function(teamId, accountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataCspActiveCustomersInAccount(teamId, accountId, customerId, dataToken);\n    };\n\n    self.dataCspDeActiveCustomersInAccount = function(teamId, accountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataCspDeActiveCustomersInAccount(teamId, accountId, customerId, dataToken);\n    };\n\n    self.dataCspGetGsiSettings = function(teamId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetGsiSettings(teamId, dataToken);\n    };\n\n    self.dataCspSetGsiSettings = function(teamId, gsiCurrency, dataToken) {\n      return $eaBackendAzureV2.dataCspSetGsiSettings(teamId, gsiCurrency, dataToken);\n    };\n\n    self.dataCspGetCustomersSpendingsInAccount = function(teamId, accountId, month, dataToken) {\n      return $eaBackendAzure.dataCspGetCustomersSpendingsInAccount(teamId, accountId, month, dataToken);\n    };\n\n    self.dataCspSyncCustomerInAccount = function(teamId, accountId, customerId, optionalMonth, dataToken) {\n      return $eaBackendAzureV2.dataCspSyncCustomerInAccount(teamId, accountId, customerId, optionalMonth, dataToken);\n    };\n\n    self.dataCspGetResellerMarginForCustomer = function(teamId, accountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetResellerMarginForCustomer(teamId, accountId, customerId, dataToken);\n    };\n\n    self.dataCspSetResellerMarginForCustomer = function(teamId, accountId, customerId, margins, dataToken) {\n      return $eaBackendAzureV2.dataCspSetResellerMarginForCustomer(teamId, accountId, customerId, margins, dataToken);\n    };\n\n    self.dataCspGetResellerFilterForCustomer = function(teamId, accountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetResellerFilterForCustomer(teamId, accountId, customerId, dataToken);\n    };\n\n    self.dataCspSetResellerFilterForCustomer = function(teamId, accountId, customerId, filter, dataToken) {\n      return $eaBackendAzureV2.dataCspSetResellerFilterForCustomer(teamId, accountId, customerId, filter, dataToken);\n    };\n\n    self.dataCspUpgradeResellerVersionForCustomer = function(teamId, accountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataCspUpgradeResellerVersionForCustomer(teamId, accountId, customerId, dataToken);\n    };\n\n    self.dataCspGetResellerFeaturesForCustomer = function(teamId, accountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetResellerFeaturesForCustomer(teamId, accountId, customerId, dataToken);\n    };\n\n    self.dataCspSetResellerFeaturesForCustomer = function(teamId, accountId, customerId, features, dataToken) {\n      return $eaBackendAzureV2.dataCspSetResellerFeaturesForCustomer(teamId, accountId, customerId, features, dataToken);\n    };\n\n    self.dataCspGetUpliftCategories = function(teamId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetUpliftCategories(teamId, dataToken);\n    };\n    /*\n     * AWS API\n     */\n    self.dataAwsVerifyConnection = function(teamId, roleArn, externalId, bucket, dataToken) {\n      return $eaBackendAzureV2.dataAwsVerifyConnection(teamId, roleArn, externalId, bucket, dataToken);\n    };\n\n    self.dataAwsRegisterContract = function(teamId, roleArn, externalId, bucket, prefix, reportname, dataToken)\n    {\n      return $eaBackendAzureV2.dataAwsRegisterContract(teamId, roleArn, externalId, bucket, prefix, reportname, dataToken);\n    };\n\n    /*\n     * GCP API\n     */\n    self.dataGcpVerifyConnection = function(teamId, accountKey, dataSetName, dataToken) {\n      return $eaBackendAzureV2.dataGcpVerifyConnection(teamId, accountKey, dataSetName, dataToken);\n    };\n\n    self.dataGcpRegisterContract = function(teamId, accountKey, dataSetName, dataToken)\n    {\n      return $eaBackendAzureV2.dataGcpRegisterContract(teamId, accountKey, dataSetName, dataToken);\n    };\n\n    /*\n     * EA API\n     */\n    self.dataEARegisterContract = function(teamId, contractId, eaToken, dataToken)\n    {\n      return $eaBackendAzureV2.dataEARegisterContract(teamId, contractId, eaToken, dataToken);\n    };\n\n    self.dataCostMgntRegisterContract = function(teamId, dataToken)\n    {\n      return $eaBackendAzureV2.dataCostMgntRegisterContract(teamId, dataToken);\n    };\n\n    self.dataCostMgntAddContainerToContract = function(teamId, contractId, storageAccountName, storageAccountKey, reportContainer, reportFolder, dataToken) {\n      return $eaBackendAzureV2.dataCostMgntAddContainerToContract(teamId, contractId, storageAccountName, storageAccountKey, reportContainer, reportFolder, dataToken);\n    }\n\n    /*\n     * Demo Mode API\n     */\n    self.dataDemoRegisterContract = function(teamId, dataToken) {\n      return $eaBackendAzureV2.dataDemoRegisterContract(teamId, dataToken);\n    };\n\n    /*\n     * Service Charts API\n     */\n    self.dataGetServiceCharts = function(group) {\n      return $eaBackendAzure.dataGetServiceCharts(group);\n    };\n\n    /*\n     * RI Analysis\n     */\n\n    self.dataGetRiVirtualMachines = function(teamId, contract, cacheIdentifier, dataToken, retry) {\n      return $eaBackendAzureV2.dataGetRiVirtualMachines(teamId, contract, cacheIdentifier, dataToken, retry);\n    };\n\n    self.dataGetRiAnalysisResult = function(teamId, contract, resourceInstanceId, cacheIdentifier, dataToken, retry, queryoptions) {\n      return $eaBackendAzureV2.dataGetRiAnalysisResult(teamId, contract, resourceInstanceId, cacheIdentifier, dataToken, retry, queryoptions);\n    };\n\n    /*\n     * Report Center API for Widgets\n     */\n    self.dataGetReportCenterReportDefinitions = function(teamid, dataToken) {\n      return $eaBackendAzureV2.dataGetReportCenterReportDefinitions(teamid, dataToken);\n    };\n\n    /*\n     * Hashes\n     */\n    self.dataGetTeamHashes = function(teamId, hashCategory, dataToken) {\n      return $eaBackendAzureV2.dataGetTeamHashes(teamId, hashCategory, dataToken).then(function(result) {\n        var map = {};\n        result.forEach(function(item) {\n          map[item.key] = item.value;\n        });\n\n        return map;\n      })\n    };\n\n    self.dataGetTeamHash = function(teamId, hashCategory, hashId, dataToken) {\n      return $eaBackendAzureV2.dataGetTeamHash(teamId, hashCategory, hashId, dataToken);\n    };\n\n    /*\n     * Reseller\n     */\n    self.dataGetCspResellers = function(teamId, dataToken) {\n      return $eaBackendAzureV2.dataGetCspResellers(teamId, dataToken);\n    };\n\n    self.dataRegisterCspResellers = function(teamId, resellerName, dataToken) {\n      return $eaBackendAzureV2.dataRegisterCspResellers(teamId, resellerName, dataToken);\n    };\n\n    self.dataDeleteEmptyCspResellers = function(teamId, resellerId, dataToken) {\n      return $eaBackendAzureV2.dataDeleteEmptyCspResellers(teamId, resellerId, dataToken);\n    };\n\n    self.dataPublishCspCustomer = function(teamId, resellerId, accountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataPublishCspCustomer(teamId, resellerId, accountId, customerId, dataToken);\n    };\n\n    self.dataUnPublishCspCustomer = function(teamId, resellerId, resellerAccountId, customerId, dataToken) {\n      return $eaBackendAzureV2.dataUnPublishCspCustomer(teamId, resellerId, resellerAccountId, customerId, dataToken);\n    };\n\n    self.dataGetCspResellerSummary = function(teamId, reportId, cacheIdentifier, dataToken, retry) {\n      return $eaBackendAzureV2.dataGetCspResellerSummary(teamId, reportId, cacheIdentifier, dataToken, retry);\n    };\n\n    self.dataGetCspDownloadAccountInvoice = function(teamid, accountId, month, dataToken)  {\n      return $eaBackendAzureV2.dataGetCspDownloadAccountInvoice(teamid, accountId, month, dataToken);\n    };\n\n    self.dataCspAwsRegisterContract = function(teamId, accountName, roleArn, externalId, bucket, prefix, reportname, customerMapping, dataToken) {\n      return $eaBackendAzureV2.dataCspAwsRegisterContract(teamId, accountName, roleArn, externalId, bucket, prefix, reportname, customerMapping, dataToken);\n    };\n\n    self.dataCspSetResellerMarginForReseller = function(teamId, resellerId, margins, dataToken) {\n      return $eaBackendAzureV2.dataCspSetResellerMarginForReseller(teamId, resellerId, margins, dataToken);\n    };\n\n    self.dataCspGetResellerMarginForReseller = function(teamId, resellerId, dataToken) {\n      return $eaBackendAzureV2.dataCspGetResellerMarginForReseller(teamId, resellerId, dataToken);\n    };\n\n    self.dataGetDashboardLayout = function(teamId, dashboardId, dashboardVersion, dataToken) {\n      return $eaBackendAzureV2.dataGetDashboardLayout(teamId, dashboardId, dashboardVersion, dataToken);\n    };\n\n    self.dataPostDashboardLayout = function(teamId, dashboardId, dashboardVersion, dashboardLayoutItems, dataToken) {\n      return $eaBackendAzureV2.dataPostDashboardLayout(teamId, dashboardId, dashboardVersion, dashboardLayoutItems, dataToken);\n    };\n\n    self.dataGetDashboardWidgets = function(teamId, dashboardId, dataToken) {\n      return $eaBackendAzureV2.dataGetDashboardWidgets(teamId, dashboardId, dataToken);\n    };\n\n    self.dataPostDashboardWidget = function(teamId, dashboardId, widgetDescription, dataToken) {\n      return $eaBackendAzureV2.dataPostDashboardWidget(teamId, dashboardId, widgetDescription, dataToken);\n    };\n\n    self.dataDeletDashboardWidget = function(teamId, dashboardId, widgetId, dataToken) {\n      return $eaBackendAzureV2.dataDeletDashboardWidget(teamId, dashboardId, widgetId, dataToken);\n    };\n\n    self.dataGetContractTags = function(teamId, contractId, dataToken) {\n      return $eaBackendAzureV2.dataGetContractTags(teamId, contractId, dataToken);\n    };\n\n    self.dataGetMetersForService = function(teamId, contractId, month, serviceId, dataToken) {\n      return $eaBackendAzureV2.dataGetMetersForService(teamId, contractId, month, serviceId, dataToken);\n    };\n\n    self.dataCpvGetConsentLink = function(teamId, accountId, dataToken) {\n      return $eaBackendAzureV2.dataCpvGetConsentLink(teamId, accountId, dataToken);\n    };\n  });\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaBackendBase', function($q) {\n  var self = this;\n\n  // is responsible for setting the auth header\n  self.getDefaultHeaders = function(jwtToken) {\n    return {\n      'Authorization': function () {\n        return 'Bearer ' + jwtToken;\n      }\n    };\n  };\n\n  self.getDefaultHeadersImageUpload = function(jwtToken) {\n    return {\n      'Authorization': function () {\n        return 'Bearer ' + jwtToken;\n      },\n      'Content-Type': function () {\n        return undefined;\n      }\n    };\n  };\n\n  // Extract the body data\n  self.extractDataFromResponse = function(requestPromise) {\n    var defer = $q.defer();\n\n    requestPromise.then(function (result) {\n      if (result.status === 200 || result.status === 201 || result.status === 202) {\n        defer.resolve(result.data);\n      } else {\n        defer.reject({status: result.status ? result.status : 500, data: result.data ? result.data : null});\n      }\n    }).catch(function (result) {\n      defer.reject({status: result.status ? result.status : 500, data: result.data ? result.data : null});\n    });\n\n    return defer.promise;\n  };\n\n  self.extractDataFromLocationHeader = function(requestPromise) {\n    return requestPromise.then(function (result) {\n\n      // split the header\n      var splittedHeader = result.headers('Location').split('/');\n\n      // take the last value\n      return $q.when({\n        url: result.headers('Location'),\n        entityId: splittedHeader[splittedHeader.length - 1]\n      });\n    })\n  };\n\n});\n","'use strict';\n\n/**\n * @ngdoc service\n * @name azureCostsFeApp.eaBackendAdmin\n * @description\n * # eaBackendAzure\n * Service in the azureCostsFeApp.\n */\nangular.module('azureCostsFeApp').service('$eaBackendAdmin', function($q, $timeout, $http, $eaBackendBase, $eaConfig) {\n  var self = this;\n\n  // This is the main uri of the backend\n  var adminUri    = ($eaConfig.apiProtocol ? $eaConfig.apiProtocol : 'https') + '://' + $eaConfig.apiHost + '/admin/v1';\n\n  /*\n   * Admin API\n   */\n\n  self.dataGetServiceProviders = function(dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(adminUri + '/serviceproviders', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetSpendingStats = function(providerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(adminUri + '/' + providerId + '/spendings/stats', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetUsers = function(providerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(adminUri + '/' + providerId + '/users', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataDeleteUser = function(providerId, userid, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.delete(adminUri + '/' + providerId + '/users/' + userid, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataPutTeamContractsSyncMonth = function(providerId, teamid, contract, month, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(adminUri + '/' + providerId + '/teams/' + teamid + '/contracts/' + contract + '/reports/' + month + '/sync', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataPutPersonalContractsSyncMonth = function(providerId, userid, contract, month, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(adminUri + '/' + providerId + '/personal/' + userid + '/contracts/' + contract + '/reports/' + month + '/sync', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataPutTeamContractsSync = function(providerId, teamid, contract, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(adminUri + '/' + providerId + '/teams/' + teamid + '/contracts/' + contract + '/reports/sync', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataPutPersonalContractsSync = function(providerId, userid, contract, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(adminUri + '/' + providerId + '/personal/' + userid + '/contracts/' + contract + '/reports/sync', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataDeleteTeamContractsReports = function(providerId, teamid, contract, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.delete(adminUri + '/' + providerId + '/teams/' + teamid + '/contracts/' + contract + '/reports', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataDeletePersonalContractsReports = function(providerId, userid, contract, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.delete(adminUri + '/' + providerId + '/personal/' + userid + '/contracts/' + contract + '/reports', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n});\n","'use strict';\n\n/**\n * @ngdoc service\n * @name azureCostsFeApp.eaBackendAdmin\n * @description\n * # eaBackendAzure\n * Service in the azureCostsFeApp.\n */\nangular.module('azureCostsFeApp').service('$eaBackendAdminV2', function($q, $timeout, $http, $eaBackendBase, $eaConfig) {\n  var self = this;\n\n  // This is the main uri of the backend\n  var adminUri    = ($eaConfig.apiProtocol ? $eaConfig.apiProtocol : 'https') + '://' + $eaConfig.apiHostAdminV2 + '/api/v2';\n\n  self.dataGetJobs = function(hours, optionalTeam, dataToken) {\n\n    var teamFilter = \"\";\n    if (optionalTeam) { teamFilter = '&teamId=' + optionalTeam; }\n    return $eaBackendBase.extractDataFromResponse($http.get(adminUri + '/jobs?hours=' + hours + teamFilter, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetJobEntries = function(partitionKey, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(adminUri + '/jobs/' + partitionKey + '/entries', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataInviteUser = function(userUpn, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(adminUri + '/users', { Upn: userUpn}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n});\n","'use strict';\n\n/**\n * @ngdoc service\n * @name azureCostsFeApp.eaBackendAzure\n * @description\n * # eaBackendAzure\n * Service in the azureCostsFeApp.\n */\nangular.module('azureCostsFeApp').service('$eaBackendAzureV2', function($q, $timeout, $http, $eaConfig, $eaBackendBase, $base64, $eaBackendDataModeSelector, $acWaitHelpers, rfc4122) {\n  var self = this;\n\n  var backendUriV2  = ($eaConfig.apiProtocol ? $eaConfig.apiProtocol : 'https') + '://' + $eaConfig.apiHostV2 + '/api/v2';\n\n  self.dataGetContractReportsV2 = function(teamId, contract, dataToken) {\n    var queryParameters = '';\n    if ($eaBackendDataModeSelector.isBillingCycleEnabled()) { var queryParameters = '?billing=true'; }\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/reports' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  // Is using the new Core API\n  self.dataGetContractReportDataV3 = function(teamId, contract, report, cacheIdentifier, dataToken, retry) {\n    var queryParameters = '';\n\n    // build the cache identifier\n    if (cacheIdentifier !== undefined && cacheIdentifier !== null) {\n      queryParameters = '?cache=' + cacheIdentifier + '&age=31557600';\n    }\n\n    // generate the cycle parameter\n    if ($eaBackendDataModeSelector.isBillingCycleEnabled()) {\n      if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n      queryParameters += 'cycle=billing&day=' + $eaBackendDataModeSelector.getBillingCycleDay();\n    }\n\n    // generate the nomargin parameter\n    if ($eaBackendDataModeSelector.isNoMarginEnabled()) {\n      if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n      queryParameters += 'nomargin=true';\n    }\n\n    // add no mers\n    if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n    queryParameters += 'nometers=true';\n\n    // add the retry parameter\n    if (retry)\n    {\n      if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n      queryParameters += 'retry=true';\n    }\n\n    // user our api boost hosts, generate the index based on report name\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/reports/' + report + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetContractReportHistoryV3 = function(teamId, contract, cacheIdentifier, dataToken, retry) {\n\n    // build the query parameter\n    var queryParameters = '';\n\n    // build the cache identifier\n    if (cacheIdentifier !== undefined && cacheIdentifier !== null) {\n      queryParameters = 'cache=' + cacheIdentifier + '&age=31557600&';\n    }\n\n    // generate the time\n    var endDate = moment().format('YYYY-MM-DD');\n    var startDate = moment().add(-31, \"days\").format('YYYY-MM-DD');\n    queryParameters += \"startDay=\" + startDate + \"&endDay=\" + endDate;\n\n    // generate the nomargin parameter\n    if ($eaBackendDataModeSelector.isNoMarginEnabled()) {\n      queryParameters += '&nomargin=true';\n    }\n\n      // add the retry parameter if needed\n    if (retry) {queryParameters += \"&retry=true\"; }\n\n    // query\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/history/daily?' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspGetAccount = function(teamId, accountId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspRegisterAccountT1V2 = function(teamId, name, clientId, clientSecret, domain, billingDay, syncCustomers, autoActivateCustomers, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/t1', { Name: name, ClientId: clientId, ClientSecret: clientSecret, Domain: domain, BillingDay: billingDay, Initialize: true, SyncCustomers: syncCustomers, AutoActivateCustomers: autoActivateCustomers}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspRegisterAccountEAV2 = function(teamId, name, currency, token, cmapping, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/ea', { Name: name, SecurityToken: token, Currency: currency, CustomerMapping: cmapping, Initialize: true}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspRegisterAccountV1 = function(teamId, name, currency, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/virtual', { Name: name, Currency: currency }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspRegisterAccountDemo = function(teamId, name, contractType, currency, cmapping, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/demo', { Name: name, Currency: currency, CustomerMapping: cmapping, Initialize: true, FakeServiceType: contractType}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspMonthSyncReportsV2 = function(teamId, accountId, month, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2  + '/csps/' + teamId + '/accounts/' + accountId + '/reports/' + month + '/sync', undefined, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspSyncCustomerInAccount = function(teamId, accountId, customerId, optionalMonth, dataToken) {\n    var query = optionalMonth ? '?month=' + optionalMonth : '';\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/sync' + query, {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspUpdateAccountEAV2 = function(teamId, accountId, name, currency, token, exchangeRate, defaultResellerManagement, dataToken) {\n\n    // define the payload\n    var updateAccountPayload = { Name: name, Currency: currency, ExchangeRate: exchangeRate, DefaultResellerManagement: defaultResellerManagement };\n    if (token) { updateAccountPayload.SecurityToken = token; }\n\n    // send the request\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/ea', updateAccountPayload, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspUpdateAccountAWSV2 = function(teamId, accountId, name, currency, exchangeRate, defaultResellerManagement, dataToken) {\n\n    // define the payload\n    var updateAccountPayload = { Name: name, Currency: currency, ExchangeRate: exchangeRate, DefaultResellerManagement: defaultResellerManagement };\n\n    // send the request\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/aws', updateAccountPayload, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspUpdateAccountT1V2 = function(teamId, accountId, name, clientId, clientSecret, domain, billingDay, exchangeRate, autoActivateCustomers, defaultResellerManagement, dataToken) {\n\n    // define the payload\n    var updateAccountPayload = { Name: name, ClientId: clientId, ClientSecret: clientSecret, Domain: domain, BillingDay: billingDay, ExchangeRate: exchangeRate, AutoActivateCustomers: autoActivateCustomers, DefaultResellerManagement: defaultResellerManagement };\n\n    // send the request\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/t1', updateAccountPayload, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspRegisterCustomer = function(teamId, accountId, tenantIdOrDomain, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers', { domain: tenantIdOrDomain }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspRegisterCostMgntCustomer = function(teamId, accountId, customerName, hasConsumption, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers', { HasConsumption: hasConsumption, CustomerName: customerName, CustomerSubType: 'AzureCostMgnt'}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  // api/v2/csps/{teamId}/accounts/{accountId}/spendings\")]\n  self.dataCspGetCustomersSpendingsInAccountV2 = function(viewId, teamId, accountId, month, dataToken, cacheIdentifierMap, retry) {\n\n    var queryParameters = '?';\n\n    // build the date\n    var reportMonth = month + '-01';\n\n    var splitedMonth = month.split('-');\n    var daysInMonth = Date.getDaysInMonth(parseInt(splitedMonth[0]), parseInt(splitedMonth[1]));\n    var reportMonthEnd = month + '-' + daysInMonth.toString().padStart(2, '0');\n\n    // generate the cycle parameter\n    if ($eaBackendDataModeSelector.isBillingCycleEnabled() && $eaBackendDataModeSelector.getBillingCycleDay() !== 1) {\n\n      // start the month in the last month\n      var reportMonth = moment(reportMonth).subtract(1, 'months').toDate();\n\n      // set the start date\n      reportMonth = reportMonth.currentMonthDefinition() + '-' + $eaBackendDataModeSelector.getBillingCycleDay().toString().padStart(2, '0');\n\n      // next month\n      var nextDate = new Date(reportMonth).addDays(31);\n      reportMonthEnd = nextDate.currentMonthDefinition() + '-' + ($eaBackendDataModeSelector.getBillingCycleDay() - 1).toString().padStart(2, '0');\n    }\n\n    // set parameters\n    queryParameters += \"startTime=\" + reportMonth + 'T00:00:00.000Z';\n    queryParameters += \"&endTime=\" + reportMonthEnd + 'T00:00:00.000Z';\n\n    // add the view id\n    queryParameters += \"&viewId=\" + viewId;\n\n    // add the cache\n    cacheIdentifierMap[reportMonth] = cacheIdentifierMap[reportMonth] || rfc4122.v4();\n    queryParameters += \"&cache=\" + cacheIdentifierMap[reportMonth];\n\n    // retry\n    if (retry) { queryParameters += '&retry=true'; }\n\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/spendings' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspGetCustomersInAccount = function(teamId, accountId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspActiveCustomersInAccount = function(teamId, accountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/activate', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspDeActiveCustomersInAccount = function(teamId, accountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/deactivate', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspGetGsiSettings = function(teamId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/gsisettings', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspSetGsiSettings = function(teamId, gsiCurrency, dataToken) {\n    var payload = { ReferenceCurrency: gsiCurrency };\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2 + '/csps/' + teamId + '/gsisettings', payload, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataMonthSyncReportsV2 = function(teamid, contract, months, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2  + '/teams/' + teamid + '/contracts/' + contract + '/reports/sync', months.map(function(month) { return { \"reportId\": month } }), {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataSetServiceTagsV4 = function(teamid, contract, serviceId, serviceTags, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2  + '/teams/' + teamid + '/contracts/' + contract + '/services/' + serviceId + '/tags',  { tags: serviceTags }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspSyncAccount = function(teamId, accountId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/sync', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspUpdateVirtualMetersForCustomerInAccount = function(teamId, accountId, customerId, month, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/updatevmeters', { Month: month }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspUpgradeResellerVersionForCustomer = function(teamId, accountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/version', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  /*\n   * AWS API\n   */\n  self.dataAwsVerifyConnection = function(teamId, roleArn, externalId, bucket, dataToken)\n  {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/aws/verify', { AssumedRole: roleArn, ExternalId: externalId, Bucket: bucket}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataAwsRegisterContract = function(teamId, roleArn, externalId, bucket, prefix, reportname, dataToken)\n  {\n    return $eaBackendBase.extractDataFromLocationHeader($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/aws', {\n      AssumedRole: roleArn, ExternalId: externalId,\n      Bucket: bucket, BucketPrefix: prefix,\n      ReportName: reportname,\n      Initialize: true\n    }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(result) {\n      return $q.when(result.entityId);\n    });\n  };\n\n  self.dataEARegisterContract = function(teamId, contractId, eaToken, dataToken)\n  {\n    return $eaBackendBase.extractDataFromLocationHeader($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/ea', {\n      ContractId: contractId,\n      Token: eaToken,\n      Initialize: true\n    }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function() {\n      return $q.when(contractId);\n    });\n  };\n\n  self.dataCostMgntRegisterContract = function(teamId, dataToken)\n  {\n    return $eaBackendBase.extractDataFromLocationHeader($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/azurecostmgnt', \n    {}, \n    {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(result) {\n      return $q.when(result.entityId);\n    });\n  };\n\n  self.dataCostMgntAddContainerToContract = function(teamId, contractId, storageAccountName, storageAccountKey, reportContainer, reportFolder, dataToken) {\n    return $eaBackendBase.extractDataFromLocationHeader($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/azurecostmgnt/' + contractId + '/containers', {\n      AccountName: storageAccountName,\n      AccountKey: storageAccountKey,\n      ReportContainer: reportContainer,\n      ReportFolder: reportFolder,      \n    }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(result) {\n      return $q.when(result.entityId);\n    });\n  }\n\n  self.dataDemoRegisterContract = function(teamId, dataToken)\n  {\n    return $eaBackendBase.extractDataFromLocationHeader($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/demo', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(result) {\n      return $q.when(result.entityId);\n    });\n  };\n\n  /*\n   * GCP APi\n   */\n  self.dataGcpVerifyConnection = function(teamId, accountKey, dataSetName, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/gcp/verify', { ServiceAccountKey: accountKey, BillingDataSet: dataSetName }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGcpRegisterContract = function(teamId, accountKey, dataSetName, dataToken) {\n    return $eaBackendBase.extractDataFromLocationHeader($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/gcp', {\n      ServiceAccountKey: accountKey, BillingDataSet: dataSetName,\n      Initialize: true\n    }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(result) {\n      return $q.when(result.entityId);\n    });\n  };\n\n  /*\n   * RI Analysis API\n   */\n\n  self.dataGetRiVirtualMachines = function(teamId, contract, cacheIdentifier, dataToken, retry) {\n    var queryParameters = '';\n\n    // build the cache identifier\n    if (cacheIdentifier !== undefined && cacheIdentifier !== null) {\n      queryParameters = '?cache=' + cacheIdentifier + '&age=31557600';\n    }\n\n    // add the retry parameter\n    if (retry) {\n      if (queryParameters === '') {\n        queryParameters = '?';\n      } else {\n        queryParameters += '&';\n      }\n      queryParameters += 'retry=true';\n    }\n\n    // user our api boost hosts, generate the index based on report name\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/ri/vms/' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetRiAnalysisResult = function(teamId, contract, resourceInstanceId, cacheIdentifier, dataToken, retry, queryoptions) {\n    var queryParameters = '';\n\n    // build the cache identifier\n    if (cacheIdentifier !== undefined && cacheIdentifier !== null) {\n      queryParameters = '?cache=' + cacheIdentifier + '&age=31557600';\n    }\n\n    // add the retry parameter\n    if (retry)\n    {\n      if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n      queryParameters += 'retry=true';\n    }\n\n    // add query options\n    if (queryoptions) {\n      Object.keys(queryoptions).forEach(function(qk) {\n        queryParameters += '&' + qk + '=' + queryoptions[qk] ;\n      })\n    }\n\n    // user our api boost hosts, generate the index based on report name\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/ri/' + resourceInstanceId + '/analysis' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  /*\n   * Price Sheet\n   */\n  self.dataGetPriceComparisionSheet = function(teamId, contract, notUsedResourceId, cacheIdentifier, dataToken, retry, queryOptions) {\n    var queryParameters = '';\n\n    // build the cache identifier\n    if (cacheIdentifier !== undefined && cacheIdentifier !== null) {\n      queryParameters = '?cache=' + cacheIdentifier + '&age=31557600';\n    }\n\n    // add the retry parameter\n    if (retry) {\n      if (queryParameters === '') {\n        queryParameters = '?';\n      } else {\n        queryParameters += '&';\n      }\n      queryParameters += 'retry=true';\n    }\n\n    // add our normal values\n    if (queryParameters === '') {\n      queryParameters = '?';\n    } else {\n      queryParameters += '&';\n    }\n\n    queryParameters += 'region=' + queryOptions.region + '&locale=' + queryOptions.locale + '&currency=' + queryOptions.currency + '&erate=' + queryOptions.erate;\n\n    // user our api boost hosts, generate the index based on report name\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/pricesheet/' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  /*\n  * Report Center API for Widgets\n  */\n  self.dataGetReportCenterReportDefinitions = function(teamid, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamid + '/reportcenter/v2/definitions', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  /*\n   * Teaming API\n   */\n\n  self.dataInviteUserToTeamV2 = function(teamid, contact, role, fullAccess, callback, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/teams/' + teamid + '/invitations', { Contact: contact, Role: role, FullAccess: fullAccess, Callback: callback}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  /*\n   * Cache Hashes\n   */\n  self.dataGetTeamHashes = function(teamId, hashCategory, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/hashes/categories/' + hashCategory, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetTeamHash = function(teamId, hashCategory, hashId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/hashes/categories/' + hashCategory + '/' + hashId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  /*\n   * Reseller\n   */\n\n    self.dataGetCspResellers = function(teamId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/resellers', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataRegisterCspResellers = function(teamId, resellerName, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/resellers', { Name: resellerName }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataDeleteEmptyCspResellers = function(teamId, resellerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.delete(backendUriV2 + '/csps/' + teamId + '/resellers/' + resellerId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataPublishCspCustomer = function(teamId, resellerId, accountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/resellers/' + resellerId + '/customers', { AccountId: accountId, CustomerId: customerId }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataUnPublishCspCustomer = function(teamId, resellerId, resellerAccountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.delete(backendUriV2 + '/csps/' + teamId + '/resellers/' + resellerId + '/accounts/' + resellerAccountId + '/customers/' + customerId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetCspResellerSummary = function(teamId, reportId, cacheIdentifier, dataToken, retry)\n  {\n    var queryParameters = '';\n\n    // build the cache identifier\n    if (cacheIdentifier !== undefined && cacheIdentifier !== null) {\n      queryParameters = '?cache=' + cacheIdentifier + '&age=31557600';\n    }\n\n    // add the retry parameter\n    if (retry)\n    {\n      if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n      queryParameters += 'retry=true';\n    }\n\n    // user our api boost hosts, generate the index based on report name\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/resellers/summary/' + reportId + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspSetResellerMarginForReseller = function(teamId, resellerId, margins, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2 + '/csps/' + teamId + '/resellers/margins/' + resellerId, { margins: margins }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspGetResellerMarginForReseller = function(teamId, resellerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/resellers/margins/' + resellerId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(responseData) {\n      return responseData.margins.map(function(m) {\n        return { MatchKey: m.matchKey || '*', Margin: m.margin, ValidUntil: m.validUntil };\n      });\n    });\n  };\n\n  /*\n   * CSP\n   */\n  self.dataGetCspDownloadAccountInvoice = function(teamid, accountId, month, dataToken)  {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamid + '/accounts/' + accountId + '/invoices/' + month + '/requestdownload', {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(oneTimeDownloadTicketResponse) {\n      return backendUriV2 + '/csps/' + teamid + '/invoices/download?ticket=' + oneTimeDownloadTicketResponse.oneTimeDownloadTicket\n    })\n  };\n\n  self.dataCspAwsRegisterContract = function(teamId, accountName, roleArn, externalId, bucket, prefix, reportname, customerMapping, dataToken)\n  {\n    return $eaBackendBase.extractDataFromLocationHeader($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/aws', {\n      Name: accountName,\n      AssumedRole: roleArn,\n      ExternalId: externalId,\n      BucketName: bucket,\n      Prefix: prefix,\n      ReportName: reportname,\n      CustomerMapping: customerMapping,\n      Initialize: true\n    }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(result) {\n      return $q.when(result.entityId);\n    });\n  };\n\n\n  self.dataCspGetResellerMarginForCustomer = function(teamId, accountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/margins', {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(responseData) {\n      return responseData.margins.map(function(m) {\n        return { MatchKey: m.matchKey || '*', Margin: m.margin, ValidUntil: m.validUntil };\n      });\n    });\n  };\n\n  self.dataCspSetResellerMarginForCustomer = function(teamId, accountId, customerId, margins, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/margins', { margins: margins }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspGetResellerFeaturesForCustomer = function(teamId, accountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/features', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  self.dataCspSetResellerFeaturesForCustomer = function(teamId, accountId, customerId, features, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/features', features, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataPostPurgeContractReports = function(teamId, contract, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/reports/purge-caches', {}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataGetContractInfo = function(teamId, contract, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contract + '/info', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.triggerContractNotificationForUser = function(teamId, userId, contractId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/teams/' + teamId + '/contracts/' + contractId + '/notify', { userid: userId}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCspGetUpliftCategories = function(teamId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/settings/upliftcategories', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  // Dashboard Layout\n\n  self.dataGetDashboardLayout = function(teamId, dashboardId, dashboardVersion, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/dashboards/' + dashboardId + '/layout?version=' + dashboardVersion, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  self.dataPostDashboardLayout = function(teamId, dashboardId, dashboardVersion, dashboardLayoutItems, dataToken) {\n    var model = {\n      version: dashboardVersion,\n      items: dashboardLayoutItems\n    };\n\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/teams/' + teamId + '/dashboards/' + dashboardId + '/layout', model, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  self.dataGetDashboardWidgets = function(teamId, dashboardId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/dashboards/' + dashboardId + '/widgets', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  self.dataPostDashboardWidget = function(teamId, dashboardId, widgetDescription, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.post(backendUriV2 + '/teams/' + teamId + '/dashboards/' + dashboardId + '/widgets', { ItemId: widgetDescription.ItemUuid, WidgetDescription: widgetDescription}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  self.dataDeletDashboardWidget = function(teamId, dashboardId, widgetId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.delete(backendUriV2 + '/teams/' + teamId + '/dashboards/' + dashboardId + '/widgets/' + widgetId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  // tags\n  self.dataGetContractTags = function(teamId, contractId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contractId + '/tags', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  self.dataGetMetersForService = function(teamId, contractId, month, serviceId, dataToken) {\n\n    // generate the nomargin parameter\n    var queryParameters = '';\n    if ($eaBackendDataModeSelector.isNoMarginEnabled()) {\n      if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n      queryParameters += 'nomargin=true';\n    }\n\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/teams/' + teamId + '/contracts/' + contractId + '/reports/' + month + '/services/' + serviceId + '/meters' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}))\n  };\n\n  self.dataCspGetResellerFilterForCustomer = function(teamId, accountId, customerId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/filter', {headers: $eaBackendBase.getDefaultHeaders(dataToken)})).then(function(fm) {\n      return fm.filter;\n    });\n  };\n\n  self.dataCspSetResellerFilterForCustomer = function(teamId, accountId, customerId, filter, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.put(backendUriV2 + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/filter', { Filter: filter }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataCpvGetConsentLink = function(teamId, accountId, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUriV2 + '/cpv/' + teamId + '/accounts/' + accountId + '/consent', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  self.dataDeleteContract = function(teamid, contract, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.delete(backendUriV2 + '/teams/' + teamid + '/contracts/' + contract, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  }\n  \n});","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaBackendAzureCachedContentLoader', function($q, $timeout, $http, $eaConfig, $eaBackendBase, $base64, $eaBackendDataModeSelector, $acDpnService, $acCacheIdentifierGenerator, $eaBackend) {\n  var self = this;\n\n  self.dataRequestCachedResourceWithRetry = function(teamid, contractNumber, resourceId, cacheIdentifier, jwtToken, timeout, retry, options) {\n\n    // set the timeout to a value\n    if (timeout) { timeout = timeout + 5; } else { timeout = 5; }\n    if (timeout > 15 ) { timeout = 15; }\n\n    // add nice notification\n    $acDpnService.addProcessingItem(resourceId);\n\n    // start the load process\n    var loadPromise = $q.when(options.resourceEndpoint(teamid, contractNumber, resourceId, cacheIdentifier, jwtToken, retry, options.queryoptions));\n\n    // handle the reload request\n    return loadPromise.then(function(resultData) {\n\n      // should we have an error code 202 wait for 30 seconds\n      if (resultData.status === 202) {\n\n        // wait 30 second\n        return $timeout(function() {}, timeout * 1000).then(function() {\n\n          // try to reload the data\n          return self.dataRequestCachedResourceWithRetry(teamid, contractNumber, resourceId, cacheIdentifier, jwtToken, timeout, true, options);\n\n        });\n\n      } else {\n\n        // mark the report as done\n        $acDpnService.removeProcessingItem(resourceId);\n\n        // return the loaded data\n        return $q.when(resultData);\n      }\n    });\n  };\n\n  // resourceInfomrmation: [{ Id, CacheHash}]\n  // options: { cacheIdentifierExtension, resourceEndpoint }\n  self.dataRequestCachedResourcesWithRetry = function(teamid, contractNumber, resourceInformation, jwtToken, options) {\n    options = options || {};\n\n    var reportLoadPromisses = [];\n\n    // visit the reports\n    resourceInformation.forEach(function (resource) {\n\n      // generate the cacheIdentifier\n      var cacheIdentifier = resource.CacheIdentifier;\n      if (!cacheIdentifier) {\n        cacheIdentifier = $acCacheIdentifierGenerator.buildCacheIdentifier(jwtToken, resource.CacheHash, options.cacheIdentifierExtenion);\n      }\n\n      // the process of reloading\n      reportLoadPromisses.push(self.dataRequestCachedResourceWithRetry(teamid, contractNumber, resource.Id, cacheIdentifier, jwtToken, undefined, false, options));\n    });\n\n    return $q.all(reportLoadPromisses);\n  };\n\n});\n\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaReportData', function($eaBackend, $eaBackendDataModeSelector, $q, $acCacheIdentifierGenerator, $timeout, $acDpnService) {\n  var self = this;\n\n  /*\n   * Loads the meta data about a contract. This includes the contract as self and available reports\n   * in our system\n   */\n  self.loadContractDetails = function(teamId, contractNumber, jwtToken, optionalParams) {\n\n    // define the parameters\n    optionalParams = optionalParams || {};\n    optionalParams.maxPeriods = optionalParams.maxPeriods || 12;\n\n    // get the contract\n    return $eaBackend.dataGetContract(teamId, contractNumber, jwtToken).then(function(contractInformation) {\n\n        // get the reports\n        return $eaBackend.dataGetContractReports(teamId, contractNumber, jwtToken).then(function (contractReports) {\n\n          // just take the last 12 months at max\n          var contractReports = contractReports;\n          if (contractReports.length > optionalParams.maxPeriods) { contractReports = contractReports.slice(0, optionalParams.maxPeriods); }\n          var contractReportsSmall = contractReports.map(function(report) { return report.Id; });\n\n          // assign the reports\n          contractInformation.Reports = contractReportsSmall;\n          contractInformation.ReportsFull = contractReports;\n\n          // good to go\n          return contractInformation;\n        });\n    });\n  };\n\n  self.loadReportHistory = function(teamid, contractNumber, jwtToken) {\n    return $eaBackend.dataGetContractReportHistory(teamid, contractNumber, jwtToken);\n  };\n\n});\n","'use strict';\n\n/**\n * @ngdoc service\n * @name azureCostsFeApp.eaBackendAzure\n * @description\n * # eaBackendAzure\n * Service in the azureCostsFeApp.\n */\nangular.module('azureCostsFeApp').service('$eaBackendAzure', function($q, $timeout, $http, $eaConfig, $eaBackendBase, $base64, $eaBackendDataModeSelector) {\n    var self = this;\n\n    // This is the main uri of the backend\n    var backendUri  = ($eaConfig.apiProtocol ? $eaConfig.apiProtocol : 'https') + '://' + $eaConfig.apiHost + '/api/v1';\n\n    var backendBoostUris = $eaConfig.apiBoostHosts.map(function(apiBoostHost) {\n      return ($eaConfig.apiProtocol ? $eaConfig.apiProtocol : 'https') + '://' + apiBoostHost+ '/api/v1';\n    });\n\n    var stsUri      = ($eaConfig.stsProtocol ? $eaConfig.stsProtocol : 'https') + '://' + $eaConfig.stsHost + '/sts';\n\n    var monUri  = ($eaConfig.apiProtocol ? $eaConfig.apiProtocol : 'https') + '://' + $eaConfig.apiHost + '/mon';\n\n    self.stsUpdateToken = function(options, dataToken) {\n      options = options || {};\n\n      /*jshint camelcase: false */\n      var body = { grant_type: 'update_token' };\n      if (options.delegate) { body.delegate = options.delegate; }\n\n      // ask for token update\n      return $eaBackendBase.extractDataFromResponse($http.post(stsUri+ '/issue/oauth/token', body, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataPostProfileTouch = function(dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/me', null, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetProfile = function(dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/me', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataUpdateProfile = function(profileProperties, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/me', profileProperties, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetContracts = function(teamId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamId + '/contracts', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetContract = function(teamId, contract, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamId + '/contracts/' + contract , {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetContractSubscriptions = function(teamId, contract, dataToken, options) {\n      var baseUri = backendUri + '/teams/' + teamId + '/contracts/' + contract + '/subscriptions';\n      if (options && options.verify) { baseUri += '?verify=true'; }\n      return $eaBackendBase.extractDataFromResponse($http.get(baseUri, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataPutContractSubscription = function(teamId, contract, subscriptionId, updatedFields, dataToken) {\n      var baseUri = backendUri + '/teams/' + teamId + '/contracts/' + contract + '/subscriptions/' + subscriptionId;\n      return $eaBackendBase.extractDataFromResponse($http.put(baseUri, updatedFields, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetContractSubscriptionsVerifyConnection = function(teamId, contract, subscriptionId, offerid, country, currency, dataToken) {\n      var baseUri = backendUri + '/teams/' + teamId + '/contracts/' + contract + '/subscriptions/' + subscriptionId + '/verify-connection?offerId=' + encodeURIComponent(offerid) + '&country=' + encodeURIComponent(country) + '&currency=' + encodeURIComponent(currency);\n      return $eaBackendBase.extractDataFromResponse($http.get(baseUri, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetContractReportData = function(teamId, contract, report, cacheIdentifier, dataToken, retry) {\n      var queryParameters = '';\n\n      // build the cache identifier\n      if (cacheIdentifier !== undefined && cacheIdentifier !== null) {\n        queryParameters = '?cache=' + cacheIdentifier + '&age=31557600';\n      }\n\n      // generate the cycle parameter\n      if ($eaBackendDataModeSelector.isBillingCycleEnabled()) {\n        if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n        queryParameters += 'cycle=billing';\n      }\n\n      // generate the nomargin parameter\n      if ($eaBackendDataModeSelector.isNoMarginEnabled()) {\n        if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n        queryParameters += 'nomargin=true';\n      }\n\n      // add the retry parameter\n      if (retry)\n      {\n        if (queryParameters === '') { queryParameters = '?'; } else { queryParameters += '&'; }\n        queryParameters += 'retry=true';\n      }\n\n      // user our api boost hosts, generate the index based on report name\n      var  boostIndex = (parseInt(report.split('-')[1]) % backendBoostUris.length);\n      return $eaBackendBase.extractDataFromResponse($http.get(backendBoostUris[boostIndex] + '/teams/' + teamId + '/contracts/' + contract + '/reports/' + report + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataRegisterContract = function(teamid, contract, token, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/contracts', { Enrollment: contract, Token: token }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataPostRatePlanRegistrationId = function(teamid, callbackUri, directoryDomain, defaultCurrency, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/contracts/registrationid', { Callback: callbackUri, DirectoryDomain: directoryDomain, DefaultCurrency: defaultCurrency }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataAllSyncReports = function(teamid, contract, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri  + '/teams/' + teamid + '/contracts/' + contract + '/reports/sync', null, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataMonthSyncReports = function(teamid, contract, month, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri  + '/teams/' + teamid + '/contracts/' + contract + '/reports/' + month + '/sync', null, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataUpdateContract = function(teamid, contract, contractInformation, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri  + '/teams/' + teamid + '/contracts/' + contract, contractInformation, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataSetServiceTagsV1 = function(teamid, contract, serviceName, serviceTags, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri  + '/teams/' + teamid + '/contracts/' + contract + '/services/' + $base64.encode(serviceName) + '/tags?enc=64',  { tags: serviceTags }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataSetServiceTagsV2 = function(teamid, contract, serviceName, serviceType, serviceTags, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri  + '/teams/' + teamid + '/contracts/' + contract + '/servicetypes/' + serviceType  + '/services/' + $base64.encode(serviceName) + '/tags?enc=64',  { tags: serviceTags }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataSetServiceTagsV3 = function(teamid, contract, serviceName, serviceType, serviceSubscriptionId, serviceTags, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri  + '/teams/' + teamid + '/contracts/' + contract + '/subscriptions/' + serviceSubscriptionId + '/servicetypes/' + serviceType  + '/services/' + $base64.encode(serviceName) + '/tags?enc=64',  { tags: serviceTags }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataUpdateTeamImage = function(teamid, teamImageFile, dataToken) {\n\n      // generate the form data\n      var fd = new FormData();\n      fd.append('file', teamImageFile);\n\n      // upload the file\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/image', fd, {headers: $eaBackendBase.getDefaultHeadersImageUpload(dataToken)}));\n    };\n\n    self.dataGetTeamImageLocation = function(teamid) {\n      var defer = $q.defer();\n\n      $http.head(backendUri + '/public/teams/' + teamid + '/image').then(function() {\n        defer.resolve(backendUri + '/public/teams/' + teamid + '/image');\n      }).catch(function() {\n        defer.resolve(undefined);\n      });\n\n      return defer.promise;\n    };\n\n    /*\n     * Notification Settings API\n     */\n    self.dataGetContractNotifcationSettings = function(teamid, contract, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '/contracts/' + contract + '/notifications', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetContractNotifcationSettingsForUser = function(teamid, contract, targetUserId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '/contracts/' + contract + '/notifications/' + targetUserId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.updateGetContractNotifcationSettings = function(teamid, contract, notificationSettings, dataToken, options) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/contracts/' + contract + '/notifications', { NotificationSettings: notificationSettings, Options: options }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.updateGetContractNotifcationSettingsForUser = function(teamid, contract, targetUserId, notificationSettings, dataToken, options) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/contracts/' + contract + '/notifications/' + targetUserId, { NotificationSettings: notificationSettings, Options: options }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    /*\n     * History API\n     */\n    self.dataGetContractReportHistory = function(teamid, contract, dataToken) {\n\n      // generate the nomargin parameter\n      var queryParameters = '';\n      if ($eaBackendDataModeSelector.isNoMarginEnabled()) {\n        queryParameters = '?nomargin=true';\n      }\n\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '/contracts/' + contract + '/history/daily' + queryParameters, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n\n  /*\n   * MetaData API\n   */\n  self.dataGetMetadata = function(collection, dataToken) {\n    return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/metadata/' + collection, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n  };\n\n  /*\n   * Teaming API\n   */\n    self.dataMigrateToTeamAccount = function(teamName,dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/convert', { Name: teamName }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetTeamProfile = function(teamid, members, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '?members=' + (members ? '1' : '0'), {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataInviteUserToTeam = function(teamid, contact, role, subscriptions, callback, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/invitations', { Contact: contact, Role: role, Subscriptions: subscriptions, Callback: callback}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataReInviteUserToTeam = function(teamid, invitationid, callback, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/teams/' + teamid + '/invitations/' + invitationid, { Callback: callback }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataRemoveUserFromTeam = function(teamid, userid, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.delete(backendUri  + '/teams/' + teamid + '/members/' + userid, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataUpdateTeamProfile = function(teamid, profile, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/teams/' + teamid, profile, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataUpdateTeamMembership = function(teamid, userid, role, subscriptions, contact, dataToken) {\n      var body = {};\n\n      if (role) { body.Role = role; }\n      if (subscriptions) { body.Subscriptions = subscriptions; }\n      if (contact) { body.Contact = contact; }\n\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/teams/' + teamid + '/members/' + userid, body, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataRegisterAppToTeam = function(teamid, name, clientId, clientSecret, role, subscriptions, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/apps', { Name: name, ClientId: clientId, ClientSecret: clientSecret, Role: role, Subscriptions: subscriptions }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataRegisterUserToTeam = function(teamid, contact, role, subscriptions, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/users', { Contact: contact, Role: role, Subscriptions: subscriptions}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    /*\n     * Branding API\n     */\n    self.dataUpdateBranding = function(teamid, brandingSettings, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/css', brandingSettings, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetBranding = function(teamid) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/public/teams/' + teamid + '/css'));\n    };\n\n    self.dataGetBucket = function(bucketname) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/public/buckets/' + bucketname));\n    };\n\n    self.dataGetTeamBuckets = function(teamid, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '/buckets', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCreateTeamBucket = function(teamid, bucketName, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/buckets/' + bucketName, null, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataDeleteTeamBucket = function(teamid, bucketName, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.delete(backendUri + '/teams/' + teamid + '/buckets/' + bucketName, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    /*\n     * Azure AAD API (Data Token required)\n     */\n    self.dataGetAADConnections = function(teamid, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '/aad', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataRegisterAADConnection = function(teamid, connectionData, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/aad', connectionData, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataDeleteAADConnection = function(teamid, aadId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.delete(backendUri + '/teams/' + teamid + '/aad/' + aadId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetAuthInformation = function(teamid) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/public/teams/' + teamid + '/auth'));\n    };\n\n    self.dataGetAADConnectionGroups = function(teamid, tenantId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '/aad/' + tenantId + '/groups', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    /*\n     * Billing API\n     */\n    self.dataStartTrial = function(plan, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/me/trial/' + plan, null, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataPurchase = function(plan, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/me/purchase/' + plan, null, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataUpdateBillingInformation = function(billingAddress, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/me/billing',  { PaymentMethod: 'invoice', InvoiceAddress: billingAddress }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetBillingInformation = function(dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/me/billing', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    /*\n     * Data Filter API\n    */\n    self.dataCreateDataFilter = function(teamid, ea, filter, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/teams/' + teamid + '/contracts/' + ea + '/filters', filter, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataGetDataFilters = function(teamid, ea, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/teams/' + teamid + '/contracts/' + ea + '/filters', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataRemoveDataFilter = function(teamid, ea, filterid, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.delete(backendUri + '/teams/' + teamid + '/contracts/' + ea + '/filters/' + filterid, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataUpdateDataFilter = function(teamid, ea, filter, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/teams/' + teamid + '/contracts/' + ea + '/filters/' + filter.Id, filter, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    /*\n     * CSPs\n     */\n    self.dataCspEnroll = function(teamName, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/csps/enroll', { Name: teamName }, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspGetAccounts = function(teamId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/csps/' + teamId + '/accounts', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspRegisterAccountT2 = function(teamId, name, currency, country, billingDay, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.post(backendUri + '/csps/' + teamId + '/accounts', { TierLevel: 'T2', Name: name, Currency: currency, Country: country, BillingDay: billingDay}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspUpdateAccount = function(teamId, accountId, name, clientId, clientSecret, domain, billingDay, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/csps/' + teamId + '/accounts/' + accountId, { Name: name, ClientId: clientId, ClientSecret: clientSecret, Domain: domain, BillingDay: billingDay}, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspDeleteAccount = function(teamId, accountId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.delete(backendUri + '/csps/' + teamId + '/accounts/' + accountId, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspGetCustomersInAccount = function(teamId, accountId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/csps/' + teamId + '/accounts/' + accountId + '/customers', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspGetCustomersSpendingsInAccount = function(teamId, accountId, month, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/csps/' + teamId + '/accounts/' + accountId + '/spendings/' + month, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspGetResellerFilterForCustomer = function(teamId, accountId, customerId, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.get(backendUri + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/filter', {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    self.dataCspSetResellerFilterForCustomer = function(teamId, accountId, customerId, filter, dataToken) {\n      return $eaBackendBase.extractDataFromResponse($http.put(backendUri + '/csps/' + teamId + '/accounts/' + accountId + '/customers/' + customerId + '/filter', filter, {headers: $eaBackendBase.getDefaultHeaders(dataToken)}));\n    };\n\n    /*\n     * Debug API\n     */\n    self.dataMonDebugCsp = function(clientId, clientSecret, domain, optionalUserCredentials) {\n\n      var headers = {};\n\n      if (optionalUserCredentials) {\n        var auth = $base64.encode(optionalUserCredentials.Username + \":\" + optionalUserCredentials.Password);\n        headers = {\"Authorization\": \"Basic \" + auth};\n      }\n\n      return $eaBackendBase.extractDataFromResponse($http.get(monUri+ '/debug/csp?clientId=' + clientId + '&clientSecret=' + clientSecret + '&domain=' + domain, {headers: headers}));\n    };\n\n    /*\n     * Service Charts API\n     */\n    self.dataGetServiceCharts = function() {\n      return $q.when([\n        {\n          position: 1,\n          lastPosition: 3,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 2,\n          lastPosition: 2,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 3,\n          lastPosition: 1,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 4,\n          lastPosition: 4,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 5,\n          lastPosition: 6,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 6,\n          lastPosition: 7,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 7,\n          lastPosition: 5,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 8,\n          lastPosition: 6,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 9,\n          lastPosition: 9,\n          name: 'Azure Virtual Machines'\n        },\n        {\n          position: 10,\n          lastPosition: 10,\n          name: 'Azure Virtual Machines'\n        }\n      ]);\n    };\n  });\n","'use strict';\n\n/*\n * This service implements the API to the session behaviour of the application. In controllers\n * the application should use lazy() to ensure a session is available. There are some event handlers\n *\n * onUpdate   -> Is triggered when the session object is updated or created. All session plugins should register for this\n * onRegister -> Is triggered when the user was registered newly in the system.\n */\nangular.module('azureCostsFeApp').service('$eaSession2', function($location, $q, $eaBackend, $eaBackendDataModeSelector, $eaConfig, jwtHelper, $window, $state, $eaBucket, rfc4122) {\n\n  function SessionModel(sessionData) {\n    var selfSessionModel = this;\n\n    selfSessionModel.UserId = sessionData.UserId;\n    selfSessionModel.FirstName = sessionData.FirstName;\n    selfSessionModel.LastName = sessionData.LastName;\n    selfSessionModel.IdentityProvider = sessionData.IdentityProvider;\n    selfSessionModel.IdentityProviderId = sessionData.IdentityProviderId;\n    selfSessionModel.IdentityProviderToken = sessionData.IdentityProviderToken;\n    selfSessionModel.Contact = sessionData.Contact;\n    selfSessionModel.Avatar = sessionData.Avatar;\n    selfSessionModel.DataToken = sessionData.DataToken;\n    selfSessionModel.LoginCount = sessionData.LoginCount;\n    selfSessionModel.Surveys = sessionData.Surveys;\n    selfSessionModel.ActAs = sessionData.ActAs ? sessionData.ActAs : false;\n\n    selfSessionModel.isActAsSession = function() {\n      return selfSessionModel.ActAs;\n    };\n\n    selfSessionModel.getServiceProviderId = function() {\n      if (!selfSessionModel.DataToken) {\n        return 'default';\n      }\n\n      try {\n        var decodedToken = jwtHelper.decodeToken(selfSessionModel.DataToken);\n        if (!decodedToken ||!decodedToken.svp) {\n          return 'default';\n        } else {\n          return decodedToken.svp;\n        }\n      } catch(error) {\n        return 'default';\n      }\n    };\n\n    selfSessionModel.hasCap = function(cap) {\n      if (!selfSessionModel.DataToken) {\n        return false;\n      }\n\n      try {\n        var decodedToken = jwtHelper.decodeToken(selfSessionModel.DataToken);\n\n        // no caps return false\n        if (!decodedToken.cap ||decodedToken.cap.length == 0) {\n          return false;\n        }\n\n        // check\n        return (decodedToken.cap.indexOf(cap) !== -1);\n      } catch(error) {\n        return false;\n      }\n    };\n\n    selfSessionModel.hasClaim = function(claim) {\n      return selfSessionModel.hasClaims([claim]);\n    };\n\n    selfSessionModel.hasClaims = function(claims) {\n      if (!selfSessionModel.DataToken) {\n        return false;\n      }\n\n      if (!claims || claims.length === 0) {\n        return true;\n      }\n\n      try {\n        var decodedToken = jwtHelper.decodeToken(selfSessionModel.DataToken);\n\n        // currently a permission means the attribute is true in the token\n        var claimMissing = false;\n        claims.every(function(claim) {\n          if (!decodedToken[claim]) {\n            claimMissing = true;\n            return false;\n          } else {\n            return true;\n          }\n        });\n\n        return !claimMissing;\n      } catch(error) {\n        return false;\n      }\n    };\n\n    selfSessionModel.isCapabilityActivated = function(cap) {\n      var decodedToken = jwtHelper.decodeToken(selfSessionModel.DataToken);\n      if (!decodedToken || !decodedToken.cap || decodedToken.cap.length === 0) {\n        return false;\n      } else {\n        return (decodedToken.cap.indexOf(cap) !== -1);\n      }\n    };\n  }\n\n  var self = this;\n  var activeSession = null;\n  var actAsModeEanbled = false;\n\n  var eventCallBacks = {\n    onUpdate: [],\n    onRegister: [],\n    onDestroying: [],\n    onDestroyed: []\n  };\n\n  self.onUpdate = function(onUpdateCallback) {\n    eventCallBacks.onUpdate.push(onUpdateCallback);\n  };\n\n  self.onRegister = function(onUpdateCallback) {\n    eventCallBacks.onRegister.push(onUpdateCallback);\n  };\n\n  self.onDestroying = function(onUpdateCallback) {\n    eventCallBacks.onDestroying.push(onUpdateCallback);\n  };\n\n  self.onDestroyed = function(onUpdateCallback) {\n    eventCallBacks.onDestroyed.push(onUpdateCallback);\n  };\n\n  function triggerEvent(eventName, param) {\n    var eventCallbackCollection = eventCallBacks[eventName];\n    if (eventCallbackCollection) {\n      eventCallbackCollection.forEach(function(evcb) {\n        evcb(param);\n      });\n    }\n  }\n\n  self.lazy = function(optionalRequiredPermissions) {\n    var defer = $q.defer();\n\n    // try to load the session from cache, if so we have a page reload and we need to send the update\n    // event as well\n    var cachedSessionModel = JSON.parse(sessionStorage.getItem('com.azure-costs.session'));\n    if (!activeSession && cachedSessionModel) {\n      activeSession = new SessionModel(cachedSessionModel);\n      triggerEvent('onUpdate', activeSession);\n    }\n\n    // check if we have an active session\n    if (!activeSession) {\n\n      // check if we have a prefix\n      var bucketLookupPromise = $q.when(undefined);\n      if ($eaBucket.hashHostPrefix()) {\n\n        // try to resolve the bucket prefix into a team id\n        bucketLookupPromise = $eaBucket.getTeamIdFromHostSegment().then(function (teamId) {\n\n          // try to load the auth information\n          return $eaBackend.dataGetAuthInformation(teamId).then(function (authInfo) {\n\n            // check if we need to redirect to AAD automatically, if not\n            // we just render the idps\n            var authProvider;\n            if (authInfo.aad && authInfo.aad.DefaultIdentityProvider) {\n              authProvider = 'aad';\n            }\n\n            // done\n            return $q.when(authProvider);\n          });\n        }).catch(function() {\n          return $q.when(undefined);\n        });\n      }\n\n      // wait for the bucket lookup\n      bucketLookupPromise.then(function(bucketIdp) {\n\n        // ok we need to create one which means a redirect to our Idp integration\n        console.log('BucketIdp:' + bucketIdp);\n\n        // build the oauth2 url\n        var oAuth2State = encodeURIComponent($location.$$absUrl);\n        var oAuth2Callback = encodeURIComponent($eaConfig.stsRedirectUri);\n\n        // handle idp parameter to force it\n        var idp = $location.search().idp;\n        if (idp === 'offline') {\n          // go to our callback directly\n          /*jshint camelcase: false */\n          return $state.go('ssoCallback', {access_token: 'offline', state: oAuth2State});\n        } else {\n          // attach an idp parameter to our sts if required\n          var idpState = '';\n          if (idp !== undefined && idp !== null) {\n            idpState = '&idp=' + idp;\n          } else if (bucketIdp !== undefined && bucketIdp !== null) {\n            idpState = '&idp=' + bucketIdp;\n          }\n\n          // visit our sts\n          $window.location = ($eaConfig.stsProtocol ? $eaConfig.stsProtocol : 'https') + '://' + $eaConfig.stsHost + '/sts/issue/oauth/authorize?client_id=' + $eaConfig.stsClientId + '&response_type=token&redirect_uri=' + oAuth2Callback + '&state=' + oAuth2State + idpState;\n        }\n      });\n    } else {\n\n      // check if we have specific permissions\n      if (activeSession.hasClaims(optionalRequiredPermissions)) {\n        // return the session which was generated from the idp integration\n        defer.resolve(activeSession);\n      } else {\n        defer.reject(new Error('Permission denied'));\n      }\n    }\n\n    return defer.promise;\n  };\n\n  self.destroySession = function() {\n\n    // inform the plugins\n    triggerEvent('onDestroying', activeSession);\n\n    // destroy the session\n    activeSession = null;\n\n    // destroy the cache\n    sessionStorage.removeItem('com.azure-costs.session');\n\n    // inform the plugins\n    triggerEvent('onDestroyed', activeSession);\n  };\n\n  /*\n   * Generates just a session model without interactiving with our backend\n   */\n  self.generateSession = function(id, firstName, lastName, contact, avatar, loginCount, surveyAtLogin, idpType, idpId, idpToken, dataToken, optionalRegisterHint, optionalActAsMode) {\n\n    // build the session object\n    activeSession = new SessionModel({\n      UserId: id,\n      FirstName: firstName, LastName: lastName, Contact: contact, Avatar: avatar,\n      LoginCount: loginCount,\n      IdentityProvider: idpType, IdentityProviderId: idpId, IdentityProviderToken: idpToken,\n      DataToken: dataToken,\n      Surveys: { Influencer: surveyAtLogin},\n      ActAs: optionalActAsMode});\n\n    // execute all session plugins by triggering the update event\n    if (optionalRegisterHint) {\n      triggerEvent('onRegister', activeSession);\n    } else {\n      triggerEvent('onUpdate', activeSession);\n    }\n\n    // cache the active session\n    sessionStorage.setItem('com.azure-costs.session', JSON.stringify(activeSession));\n\n    // return the result\n    return $q.when(activeSession);\n  };\n\n  self.getSession = function() {\n    return activeSession;\n  };\n\n  self.signOut = function(idp) {\n\n    // get the redirect uri\n    var redirectUri = $state.href('public.signin', {}, {absolute: true});\n    var idpParam = '';\n    if (idp) {\n      redirectUri = $state.href('public.signin', {idp: idp}, {absolute: true});\n      idpParam = '&idp=' + idp;\n    }\n\n    // call the logout endpoint\n    $window.location =  ($eaConfig.stsProtocol ? $eaConfig.stsProtocol : 'https') + '://' + $eaConfig.stsHost + '/sts/logout?redirect=' + encodeURIComponent(redirectUri) + idpParam;\n  };\n\n  self.leaveActAs = function() {\n\n    // set as the current one\n    sessionStorage.setItem('com.azure-costs.session', null);\n\n    // close the browser window\n    $window.close();\n  };\n\n  self.updateTokenFromSTS = function(currentSessionService, options) {\n\n    // get the current session\n    var currentSession = self.getSession();\n\n    // update the token\n    return $eaBackend.stsUpdateToken(options, currentSession.DataToken).then(function(updatedToken) {\n\n      // update the token\n      /*jshint camelcase: false */\n      currentSession.DataToken = updatedToken.access_token;\n      /*jshint camelcase: false */\n      currentSessionService.DataToken = updatedToken.access_token;\n\n      // cache the active session\n      sessionStorage.setItem('com.azure-costs.session', JSON.stringify(currentSession));\n\n      // done\n      return $q.when(currentSession);\n    });\n  };\n\n  self.visitProfileInSTS = function(newTab) {\n    var target = ($eaConfig.stsProtocol ? $eaConfig.stsProtocol : 'https') + '://' + $eaConfig.stsHost + '/sts/account';;\n\n    if (newTab) {\n      $window.open(target, '_blank');\n    } else {\n      $window.location = target;\n    }\n  };\n\n  self.openActAsSession = function(actAsUserId, serviceProviderId) {\n\n    // define the protocol\n    var hostProtocol = $eaConfig.stsProtocol ? $eaConfig.stsProtocol : 'https';\n    if ($eaConfig.feHost === 'localhost')\n      hostProtocol = 'http';\n\n    // build the oauth2 url\n    var oAuth2State = encodeURIComponent(($eaConfig.feProtocol ? $eaConfig.feProtocol : 'https') + '://actas-' + sha1(actAsUserId + '.' + rfc4122.v4()) + '.' + $eaConfig.feHost + ($eaConfig.fePort ? ':' + $eaConfig.fePort : '') + '/app');\n    var oAuth2Callback = encodeURIComponent($eaConfig.stsRedirectUri);\n    var location =\n      hostProtocol + '://' +\n      $eaConfig.stsHost +\n      '/sts/issue/oauth/authorize?client_id=' + $eaConfig.stsClientId +\n      '&response_type=token' +\n      '&scope=actas;' + actAsUserId + ';sp;' + serviceProviderId +\n      '&redirect_uri=' + oAuth2Callback +\n      '&state=' + oAuth2State;\n\n    // open the url\n    $window.open(location, actAsUserId);\n  };\n\n  self.setActAsMode = function() {\n    actAsModeEanbled = true;\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaConfig', function($location, envDeployment, $q) {\n\n  var productionApiHost = 'costs-api-v3.azurewebsites.net';\n  var productionApiHostV2 = 'prod-ac-v2-web.azurewebsites.net';\n  var productionApiAdminHostV2 = 'prod-ac-v2-web-admin.azurewebsites.net';\n  var productionApiBoostHosts = undefined;\n  var productionTitle = 'azure <strong>costs</strong>';\n\n  var productionConfiguration = {\n\n    // Host of the backend (V2)\n    apiHost: productionApiHost,\n    apiHostV2: productionApiHostV2,\n    apiHostAdminV2: productionApiAdminHostV2,\n    apiBoostHosts: productionApiBoostHosts,\n\n    // Frontend host\n    feHost: 'azure-costs.com',\n\n    // AAD Link Config\n    aadHost: 'azure-costs.com',\n\n    // Sts Config\n    stsHost: 'azure-costs.com',\n    stsClientId: 'costsfe',\n    stsRedirectUri: 'https://azure-costs.com/app/sso/callback',\n\n    // Authorization Configuration\n    authClientId: '0000000044136B0F',\n    authRedirectUri: 'https://azure-costs.com/app/auth.html',\n\n    // define environment typ\n    envType: 'production',\n\n    // define the cdnhost\n    cdn: 'cdnHostProd',\n\n    // define features\n    features: {\n      buckets: true,\n      csp: true,\n      fastspring: true,\n      billing: true,\n      support: true\n    },\n\n    // ui\n    appTitle: productionTitle\n  };\n\n  var productionLocalConfiguration = {\n\n    // Host of the backend (V2)\n    apiHost: productionApiHost,\n    apiHostV2: productionApiHostV2,\n    apiHostAdminV2: productionApiAdminHostV2,\n\n    // Frontend host\n    feHost: 'localhost:9000',\n\n    // AAD Link Config\n    aadHost: 'azure-costs.com',\n\n    // Sts Config\n    stsHost: 'azure-costs.com',\n    stsClientId: 'costsfedev',\n    stsRedirectUri: 'http://localhost:9000/app/sso/callback',\n\n    // Authorization Configuration\n    authClientId: '0000000044136B0F',\n    authRedirectUri: 'https://azure-costs.com/app/auth.html',\n\n    // define environment typ\n    envType: 'local',\n\n    // define the cdnhost\n    cdn: undefined,\n\n    // define features\n    features: {\n      buckets: true,\n      csp: true,\n      fastspring: true,\n      billing: true,\n      support: true\n    },\n\n    // ui\n    appTitle: productionTitle\n  };\n\n  var testConfiguration = {\n\n    // Host of the backend\n    apiHost: 'costs-api-test-v2.azurewebsites.net',\n    apiHostV2: 'dev-ac-v2-web.azurewebsites.net',\n    apiHostAdminV2: 'dev-ac-v2-web-admin.azurewebsites.net',\n\n    // Frontend host\n    feHost: 'costs-test.azurewebsites.net',\n\n    // AAD Link Config\n    aadHost: 'costs-test.azurewebsites.net',\n\n    // Sts Config\n    stsHost: 'costs-test.azurewebsites.net',\n    stsClientId: 'costsfetest',\n    stsRedirectUri: 'https://costs-test.azurewebsites.net/app/sso/callback',\n\n    // define environment typ\n    envType: 'test',\n\n    // define the cdnhost\n    cdn: 'cdnHostDev',\n\n    // define features\n    features: {\n      buckets: true,\n      csp: true,\n      fastspring: true,\n      billing: true,\n      support: true\n    },\n\n    // ui\n    appTitle: 'cloud <strong>costs</strong>'\n  };\n\n  var devConfiguration = {\n\n    // Host of the backend\n    apiHost: 'costs-api-test-v2.azurewebsites.net',\n    apiHostV2: 'dev-ac-v2-web.azurewebsites.net',\n    apiHostAdminV2: 'dev-ac-v2-web-admin.azurewebsites.net',\n\n    // Frontend host\n\n    feHost:  $location.$$host,\n    feProtocol: 'http',\n    fePort: 9000,\n\n    // AAD Link Config\n    aadHost: 'costs-test.azurewebsites.net',\n\n    // Sts Config\n    stsHost: 'costs-test.azurewebsites.net',\n    stsClientId: 'costsfedev',\n    stsRedirectUri: 'http://' + $location.$$host + ':9000/app/sso/callback',\n\n    // define environment typ\n    envType: 'local',\n\n    // define the cdnhost\n    cdn: undefined,\n\n    // define features\n    features: {\n      buckets: true,\n      csp: true,\n      fastspring: true,\n      billing: true,\n      support: true\n    },\n\n    // ui\n    appTitle: productionTitle\n};\n\nvar serviceProviderGermanCloudConfiguration = {\n\n    // Host of the backend (V2)\n    apiHost: productionApiHost,\n    apiHostV2: productionApiHostV2,\n    apiHostAdminV2: productionApiAdminHostV2,\n    apiBoostHosts: productionApiBoostHosts,\n\n    // Frontend host\n    feHost: 'azure-costs.de',\n\n    // AAD Link Config\n    aadHost: 'azure-costs.de',\n\n    // Sts Config\n    stsHost: 'azure-costs.de',\n    stsClientId: '5B68BA87-175C-4E54-B228-A8F844823BBF',\n    stsRedirectUri: 'https://azure-costs.de/app/sso/callback',\n\n    // define environment typ\n    envType: 'production',\n\n    // define the cdnhost\n    cdn: 'cdnHostProd',\n\n    // define features\n    features: {\n      buckets: false,\n      csp: true,\n      fastspring: true,\n      billing: true,\n      support: true\n    },\n\n    // svp information\n    svp: {\n      contact: 'helper@azure-costs.com'\n    },\n\n    // ui\n    appTitle: productionTitle\n  };\n\n  var serviceProviderMatrixConfiguration = {\n\n    // Host of the backend (V2)\n    apiHost: productionApiHost,\n    apiHostV2: productionApiHostV2,\n    apiHostAdminV2: productionApiAdminHostV2,\n    apiBoostHosts: productionApiBoostHosts,\n\n    // Frontend host\n    feHost: 'cloudcosts.matrix42.com',\n\n    // AAD Link Config\n    aadHost: 'cloudcosts.matrix42.com',\n\n    // Sts Config\n    stsHost: 'cloudcosts.matrix42.com',\n    stsClientId: '6ED1E682-4324-40A7-92B4-6EA244440884',\n    stsRedirectUri: 'https://cloudcosts.matrix42.com/app/sso/callback',\n\n    // define environment typ\n    envType: 'production',\n\n    // define the cdnhost\n    cdn: 'cdnHostProd',\n\n    // define features\n    features: {\n      buckets: false,\n      csp: true,\n      fastspring: false,\n      billing: false,\n      support: true\n    },\n\n    // svp information\n    svp: {\n      contact: 'support@matrix42.com'\n    },\n\n    // ui\n    appTitle: 'Matrix42 Cloud Costs'\n  };\n\n  var serviceProviderCentralityConfiguration = {\n\n    // Host of the backend (V2)\n    apiHost: productionApiHost,\n    apiHostV2: productionApiHostV2,\n    apiHostAdminV2: productionApiAdminHostV2,\n    apiBoostHosts: productionApiBoostHosts,\n\n    // Frontend host\n    feHost: 'customer.centrality.com',\n\n    // AAD Link Config\n    aadHost: 'customer.centrality.com',\n\n    // Sts Config\n    stsHost: 'customer.centrality.com',\n    stsClientId: '62FDDE45-2A58-4F96-85C6-E007300BE1FC',\n    stsRedirectUri: 'https://customer.centrality.com/app/sso/callback',\n\n    // define environment typ\n    envType: 'production',\n\n    // define the cdnhost\n    cdn: 'cdnHostProd',\n\n    // define features\n    features: {\n      buckets: false,\n      csp: true,\n      fastspring: false,\n      billing: false,\n      support: true\n    },\n\n    // svp information\n    svp: {\n      contact: 'info@centrality.com'\n    },\n\n    // ui\n    appTitle: productionTitle\n  };\n\n  // define the domain to serviceprovider map\n  var svpMap = {        \n    'azure-costs.de': serviceProviderGermanCloudConfiguration,\n    'cloudcosts.matrix42.com': serviceProviderMatrixConfiguration,\n    'customer.centrality.com': serviceProviderCentralityConfiguration\n  };\n\n  function isLocalHostSetup() {\n    var currentHost = $location.host();\n    return (currentHost === 'localhost' || currentHost === '127.0.0.1' || currentHost === '0.0.0.0');\n  }\n\n  function isDevSetup() {\n    var currentHost = $location.host();\n    return (currentHost.indexOf('costs-test.azurewebsites.net') !== -1) || (currentHost.indexOf('costs-test-fe.azurewebsites.net') !== -1);\n  }\n\n  // use prod as default\n  var activeConfiguration = productionConfiguration;\n\n  // check if we have different config\n  if (isLocalHostSetup()) {\n    activeConfiguration = devConfiguration;\n  } else if (isDevSetup()) {\n    activeConfiguration = testConfiguration;\n  }\n\n  // lookup the service provider map\n  var activeSvpConfiguration = svpMap[$location.host()];\n  if (activeSvpConfiguration) {\n    activeConfiguration = activeSvpConfiguration;\n  }\n\n  // Set this for production only testing\n  // activeConfiguration = productionLocalConfiguration;\n\n  // inject the application specific config\n  activeConfiguration.deployment = envDeployment;\n\n  // generate the cdn entrypoint\n  activeConfiguration.cdnEntrypoint = undefined;\n  if (activeConfiguration.cdn) {\n    activeConfiguration.cdnEntrypoint = 'https://' + activeConfiguration.deployment[activeConfiguration.cdn];\n  }\n\n  // generate the data path\n  activeConfiguration.dataPath = '/app/data';\n  if (activeConfiguration.envType !== 'local') {\n    activeConfiguration.dataPath += '-' + activeConfiguration.deployment.deploymentUUID;\n  }\n\n  // ensure we have at least one boost host\n  if (!activeConfiguration.apiBoostHosts || activeConfiguration.apiBoostHosts.length === 0) {\n    activeConfiguration.apiBoostHosts = [activeConfiguration.apiHost];\n  }\n\n  // inject some helper function\n  activeConfiguration.verifyFeature = function(feature) {\n    if (activeConfiguration.features[feature] === true) {\n      return $q.when(true);\n    } else {\n      return $q.reject(new Error(feature + ' not enabled'));\n    }\n  };\n\n  // allow to enable and disable ri functionaliy\n  activeConfiguration.riEnabled = false;\n\n  return activeConfiguration;\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaTeamManagement', ['$q', '$eaBackend', function($q, $eaBackend) {\n  var self = this;\n\n  // Check if we have at least one contract which is part of a\n  // team. This is indicated when the contract list contains one contract\n  // which is part ofa team different to personal\n  self.isPartOfAtLeastOneTime = function(profile) {\n    return (self.getTeams(profile).length > 0);\n  };\n\n  self.isAdminInAtLeastOneTime = function(profile) {\n    return (profile.Teams.filter(function(team) {\n        return team.Role === 'admin' && team.Id !== 'personal';\n    }).length > 0);\n  };\n\n  self.isAdminInOfTeam = function(profile, teamId) {\n    return (profile.Teams.filter(function(team) {\n      return team.Role === 'admin' && team.Id !== 'personal' && team.Id === teamId;\n    }).length > 0);\n  };\n\n  /*\n   * Gets the teams execept personal\n   */\n  self.getTeams = function(profile) {\n    return profile.Teams.filter(function(team) {\n      return (team.Id !== 'personal');\n    });\n  };\n\n  /*\n   * Returns the teams filtered by a given role\n   */\n  self.getTeamsByRole = function(profile, role) {\n    return self.getTeams(profile).filter(function(team) {\n      return (team.Role === role || team.Role === 'admin');\n    });\n  };\n\n  self.getTeamProfilesByRole = function(profile, role, members, dataToken) {\n\n    var teams = self.getTeamsByRole(profile, role);\n\n    var teamProfilePromisses = [];\n    teams.forEach(function(team) {\n      teamProfilePromisses.push($eaBackend.dataGetTeamProfile(team.Id, members, dataToken).then(function(teamProfile) {\n        // inject the role\n        teamProfile.Role = team.Role;\n        return teamProfile;\n      }).catch(function(/* e */) {\n        return null;\n      }));\n    });\n\n    return $q.all(teamProfilePromisses).then(function(teams) {\n      return teams.filter(function(team) {\n        return (team !== null && team !== undefined);\n      });\n    });\n  };\n\n\n  self.getTeamProfileById = function(teamId, members, dataToken) {\n    return $eaBackend.dataGetTeamProfile(teamId, members, dataToken);\n  }\n\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaBranding', function($q, $http, $rootScope, $eaBackend, $eaConfig, $location, $eaBucket) {\n  var self = this;\n\n  var defaultColors = {\n    generalBackgroundColor:   '#fff',\n    headerBackgroundColor:    'rgba(255,255,255,.97)',\n    headerFontColor:          '##8f8f8f',\n    headerFontColorHover:     '#1dabec',\n    bodyLineColor:            '#dddddd',\n    buttonDefaultColor:       '#1dabec',\n    buttonDefaultHoverColor:  '#444',\n    buttonPrimaryColor:       '#89c402',\n    buttonPrimaryHoverColor:  '#333',\n    reportItemColor:          '#777',\n    reportItemColorHover:     '#1dabec'\n  };\n\n  var defaultCustomCss = '';\n\n  var defaultCompanyInformation = {\n    logo: null,\n    title: $eaConfig.appTitle || 'azure <strong>costs</strong>'\n  };\n\n  self.currentColors              = defaultColors;\n  self.currentCompanyInformation  = defaultCompanyInformation;\n  self.currentCustomCss           = defaultCustomCss;\n\n  self.loadBrandingFromHostSegment = function() {\n\n    if ($eaBucket.hashHostPrefix()) {\n      $eaBucket.getTeamIdFromHostSegment().then(function (teamId) {\n        return self.loadBranding(teamId);\n      });\n    } else {\n      return $q.when();\n    }\n  };\n\n  self.loadBranding = function(teamid) {\n    var defer = $q.defer();\n\n    $eaBackend.dataGetBranding(teamid).then(function(brandingSettings) {\n\n      // set the current values\n      self.currentCompanyInformation = brandingSettings.company ? brandingSettings.company : defaultCompanyInformation;\n      self.currentColors = brandingSettings.colors;\n      self.currentCustomCss = brandingSettings.css;\n\n      // notify the change\n      $rootScope.$emit('branding.updated');\n\n      // done\n      defer.resolve();\n    }).catch(function() {\n      defer.resolve();\n    });\n\n    return defer.promise;\n  };\n\n  self.onUpdate = function(callback) {\n    $rootScope.$on('branding.updated', callback);\n  };\n\n  self.setColors = function(colors) {\n    self.currentColors = colors;\n    $rootScope.$emit('branding.updated');\n  };\n\n  self.setCustomCss = function(css) {\n    self.currentCustomCss = css;\n    $rootScope.$emit('branding.updated');\n  };\n\n  self.setCompany = function(company) {\n    self.currentCompanyInformation = company;\n    $rootScope.$emit('branding.updated');\n  };\n\n});\n","'use strict';\n\n/*\n * This service gives access to the users full profile which contains\n * the different teams a user is part of or the different contracts a user\n * can use.\n */\nangular.module('azureCostsFeApp').service('$eaUserProfile', ['$eaBackend', '$q', '$rootScope', function($eaBackend, $q, $rootScope) {\n  var self = this;\n  var cachedProfile = null;\n\n  /* Invalidate the cache when ever we naviagte away */\n  $rootScope.$on('$locationChangeStart', function() {\n    cachedProfile = null;\n  });\n\n  $rootScope.$on('$stateChangeStart', function() {\n    cachedProfile = null;\n  });\n\n  self.invalidate = function() {\n    cachedProfile = null;\n  };\n\n  self.load = function(dataToken, force) {\n\n    if (cachedProfile && !force) {\n      return $q.when(cachedProfile);\n    } else {\n      return $eaBackend.dataGetProfile(dataToken).then(function(profile) {\n\n        // duplicate the profile\n        var duplicatedProfile = JSON.parse(JSON.stringify(profile));\n\n        // use only values which are important for the hash\n        var finalCacheProfile = {};\n        finalCacheProfile.Capabilities = duplicatedProfile.Capabilities;\n        finalCacheProfile.Teams = duplicatedProfile.Teams;\n        finalCacheProfile.UserId = duplicatedProfile.UserId;\n\n        // generate a profile hash\n        var shaObj = new jsSHA('SHA-1', 'TEXT');\n        shaObj.update(JSON.stringify(finalCacheProfile));\n        var hash = shaObj.getHash('HEX');\n\n        // assign to the profile\n        profile.cacheHash = hash;\n\n        cachedProfile = profile;\n        return profile;\n      });\n    }\n  };\n\n  function ContractCollection(dataElements) {\n    var selfContractCollecton = this;\n    var data = dataElements ? dataElements : [];\n\n    selfContractCollecton.push = function(contract) {\n      data.push(contract);\n    };\n\n    selfContractCollecton.getAt = function(index) {\n      return data[index];\n    };\n\n    selfContractCollecton.__defineGetter__('length', function() {\n      return data.length;\n    });\n\n    selfContractCollecton.first = function() {\n      if (selfContractCollecton.length === 0) {\n        return null;\n      } else {\n        return selfContractCollecton.getAt(0);\n      }\n    };\n\n    selfContractCollecton.find = function(teamid, enrollment) {\n      return new ContractCollection(data.filter(function(element) {\n        return ((element.Enrollment === enrollment) && (element.Team === teamid));\n      }));\n    };\n\n    selfContractCollecton.forEach = function(cb) {\n      data.forEach(cb);\n    };\n\n    selfContractCollecton.toArray = function() {\n      return data.map(function(m) { return m; });\n    }\n  }\n\n  self.getContracts = function(profile, filterByTeam) {\n    var contracts = new ContractCollection();\n\n    profile.Teams.forEach(function(team) {\n\n      /* Filter by Team */\n      if (filterByTeam && filterByTeam !== team.Id) { return; }\n\n      /* Use the subscriptions if posible */\n      if ( team.Subscriptions && Object.keys(team.Subscriptions).length > 0 && team.Subscriptions['*'] === undefined) {\n\n        // index the contract details by id\n        var contractIndex = team.ContractsEx ? team.ContractsEx.buildIndex('Id') : {};\n\n        // do it\n        Object.keys(team.Subscriptions).forEach(function (enrollmentNumber) {\n          if (team.Subscriptions[enrollmentNumber].length > 0) {\n            contracts.push({Team: team.Id, Enrollment: enrollmentNumber, Name: contractIndex[enrollmentNumber].Name, Role: team.Role, Definition: contractIndex[enrollmentNumber].Definition, Periods: contractIndex[enrollmentNumber].Periods || 12, ResellerApiVersion: contractIndex[enrollmentNumber].ResellerApiVersion || 'v1' });\n          }\n        });\n      /* otherwise it looks like personal */\n      } else {\n        if (!team.ContractsEx) { team.ContractsEx = []; }\n        team.ContractsEx.forEach(function(contract) {\n          contracts.push({Team: team.Id, Enrollment: contract.Id, Name: contract.Name, Role: team.Role, Definition: contract.Definition, Periods: contract.Periods || 12, ResellerApiVersion: contract.ResellerApiVersion || 'v1' });\n        });\n      }\n    });\n\n    return contracts;\n  };\n\n  self.getTeam = function(profile, teamId) {\n    var result = profile.Teams.filter(function(team) {\n      return (team.Id === teamId);\n    });\n\n    if (result.length > 0) {\n      return result[0];\n    } else {\n      return null;\n    }\n  };\n\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaBucket', [ '$q', '$eaBackend', '$eaConfig', '$location', function($q, $eaBackend, $eaConfig, $location) {\n  var self = this;\n\n  function resolveHostSegmentToTeamId() {\n    // load the branding\n    var hostSegment = $location.host().split('.')[0];\n\n    if (hostSegment.split('-').length === 5) {\n      return $q.when(hostSegment);\n    } else {\n      // resolve the host segment into team id\n      return $eaBackend.dataGetBucket(hostSegment).then(function(bucketModel) {\n        return bucketModel.TeamIdentifier;\n      });\n    }\n  }\n\n  self.getTeamIdFromHostSegment = function() {\n\n    // check if we have a host prefix\n    if ($location.host().indexOf($eaConfig.feHost)) {\n      return resolveHostSegmentToTeamId();\n    } else {\n      return $q.when();\n    }\n  };\n\n  self.hashHostPrefix = function() {\n    return ($location.host().indexOf($eaConfig.feHost) > 0);\n  };\n\n}]);\n","'use strict';\n\nfunction MonthDefinition(monthDefinitionString) {\n  var self = this;\n\n  var currentMonthDefinitionString = monthDefinitionString;\n\n  function intDiv(a,b)\n  {\n    var result = a/b;\n    if(result>=0) {\n      return Math.floor(result);\n    } else {\n      return Math.ceil(result);\n    }\n  }\n\n  self.byAddingMonth = function(numberOfMonthToAdd) {\n\n    // split the current definition by \"-\"\n    var parts = currentMonthDefinitionString.split('-');\n\n    // convert to numbers\n    var year = parseInt(parts[0]);\n    var month = parseInt(parts[1]);\n\n    // add the month\n    var newTargetMonthes = (year * 12) + month + numberOfMonthToAdd;\n\n    // get the actual years\n    year = intDiv(newTargetMonthes, 12);\n\n    // get the motnh\n    month = newTargetMonthes % 12;\n    if (month === 0) {\n      year = year - 1;\n      month = 12;\n    }\n\n    // build the new definition\n    return new MonthDefinition(year + '-' + ('0' + month).slice(-2));\n  };\n\n  self.toString = function() {\n    return currentMonthDefinitionString;\n  };\n}\n\nangular.module('azureCostsFeApp').service('$eaUtils', [function() {\n  var self = this;\n\n  self.createMonthDefinition = function(monthDefinitionString) {\n    return new MonthDefinition(monthDefinitionString);\n  };\n\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaLocalSettings', function() {\n  var self = this;\n\n  var settingsStorageVersion = 'v1';\n  var defaultValues = {};\n\n  function defineSettingsValueAccessor(valueName, defaultValue) {\n\n    // register the default value\n    defaultValues[valueName] = defaultValue;\n\n    // define the setter\n    self.__defineSetter__(valueName, function(value) {\n      localStorage.setItem('com.azure-costs.settings.' + settingsStorageVersion + '.' + valueName, value);\n    });\n\n    // define the getter\n    self.__defineGetter__(valueName, function() {\n\n      var value = localStorage.getItem('com.azure-costs.settings.' + settingsStorageVersion + '.' + valueName);\n      if (value) { return value; }\n\n      return defaultValues[valueName];\n    });\n\n  }\n\n  // active dashboard\n  defineSettingsValueAccessor('activeDashboard', 'default');\n});\n","'use strict';\n\n/*\n * This service is responsible to handle everyhting around our analytics data. This means the service is\n * responsible to load a specific collection from the network or give the collection out from the cache.\n *\n * Normally we load data collections in a specific timeframe which is currently 12 months\n */\nangular.module('azureCostsFeApp').service('$eaDataCoordinator', function($q, $eaDataRawSources, $eaDataSourceManager, rfc4122) {\n  var self = this;\n  var cache = {};\n  var currentCacheHash = '';\n\n  // register all global data sources\n  $eaDataRawSources.registerDataSources();\n\n  // This function returns a promise which will be ready as soon the data for the give collection\n  // is in the cache. A collection can also be some virtual thing which will be calculated in a back\n  // ground worker. Currently the system supports the following collections\n  function queryRawDataFromBackend(teamid, contract, dataToken, className, optionalParams) {\n    optionalParams = optionalParams || {};\n\n    var useCacheIfPossible = true;\n\n    // try to split the classname to get the host\n    var classNameValues = className.split('.');\n    var hostName = 'global';\n    var classNameValue = className;\n    if (classNameValues.length >= 2) {\n      hostName = classNameValues[0];\n      classNameValues.splice(0,1);\n      classNameValue = classNameValues.join('.');\n    }\n\n    // only global namespace is allowed to use caching\n    if (hostName !== 'global') { useCacheIfPossible = false; }\n\n    // check if we ask for a valid collection\n    var loadDataCallback = $eaDataSourceManager.queryDataSource(hostName, classNameValue, optionalParams.collection);\n    if (!loadDataCallback) {\n      return $q.reject(new Error('Invalid collection ' + optionalParams.collection + ' for datasource ' + hostName + ':' + classNameValue));\n    }\n\n    // generate the collection cache key\n    var cachedCollectionKey = className + ':' + teamid + ':' + contract;\n    if (optionalParams && optionalParams.cachedCollectionKey) { cachedCollectionKey = optionalParams.cachedCollectionKey; }\n\n    // check if we have the collection in cache\n    var cachedCollection = null;\n    if (useCacheIfPossible) { cachedCollection = cache[cachedCollectionKey]; }\n\n    // check if the cachedCollection is a promise. If so it's currently a network in\n    // progress and we just register a then on this\n    if (cachedCollection && angular.isFunction(cachedCollection.then)) {\n      return cachedCollection;\n    // check if we have just data\n    } else if (cachedCollection) {\n      return $q.when(cachedCollection);\n    } else {\n      // build a promise\n      var defer = $q.defer();\n\n      // add the promise to the collection cache\n      cache[cachedCollectionKey] = defer.promise;\n\n      // load the data\n      loadDataCallback(teamid, contract, dataToken, className, currentCacheHash, optionalParams).then(function(data) {\n        // add the data to the cache\n        cache[cachedCollectionKey] = data;\n\n        // done\n        defer.resolve(data);\n      }).catch(function (error) {\n        defer.reject(error);\n      });\n\n      // return the promise\n      return defer.promise;\n    }\n  }\n\n  self.query = function(teamid, contract, dataToken, className, optionalParams) {\n    return queryRawDataFromBackend(teamid, contract, dataToken, className, optionalParams);\n  };\n\n  self.queryData = function(teamid, contract, dataToken, className, optionalParams) {\n    return self.query(teamid, contract, dataToken, className, optionalParams).then(function(data) {\n      // TODO: apply the filter operation on the data\n\n      // return the values\n      return $q.when(data);\n    });\n  };\n\n  function selectModels(teamid, contract, className, searchKeys, searchValues) {\n    // generate the collection cache key\n    var cachedCollectionKey = className + ':' + teamid + ':' + contract;\n\n    // load the cached collection\n    var models = cache[cachedCollectionKey];\n    if (!models || models.length === 0) { return; }\n\n    // search and update the model\n    return models.filter(function(m) {\n\n      // the result\n      var result = true;\n\n      // check for every key\n      searchKeys.forEach(function(k, idx) {\n        result = result && (m[k] && (m[k] === searchValues[idx]));\n      });\n\n      // done\n      return result;\n\n    });\n  }\n\n  // Allows to manioulate a property of a specific model in the cache. This will not change\n  // anything on the server\n  self.updateModels = function(teamid, contract, className, searchKeys, searchValues, propertyKey, propertyValue, propertyOperation) {\n    selectModels(teamid, contract, className, searchKeys, searchValues).forEach(function(m) {\n      if (m[propertyKey] && Array.isArray(m[propertyKey])) {\n        if (propertyOperation === 'remove') {\n          var elementIndex = m[propertyKey].indexOf(propertyValue);\n          if (elementIndex !== -1) {\n            m[propertyKey].splice(elementIndex, 1);\n          }\n        } if (propertyOperation === 'set') {\n          m[propertyKey] = propertyValue;\n        } else {\n          if (m[propertyKey].indexOf(propertyValue) === -1) {\n            m[propertyKey].push(propertyValue);\n          }\n        }\n      } else {\n        m[propertyKey] = m[propertyValue];\n      }\n    });\n  };\n\n\n  // Allows to remove a list of elements from the cache\n  self.removeModels = function(teamid, contract, className, searchKeys, searchValues) {\n\n    // generate the collection cache key\n    var cachedCollectionKey = className + ':' + teamid + ':' + contract;\n\n    // load the cached collection\n    var models = cache[cachedCollectionKey];\n    if (!models) { return; }\n\n    // finde the models\n    selectModels(teamid, contract, className, searchKeys, searchValues).forEach(function(m) {\n      var idx = models.indexOf(m);\n      models.splice(idx, 1);\n    });\n  };\n\n  // Allows to add elemnets to the cache\n  self.addModels = function(teamid, contract, className, elementsToAdd) {\n\n    // generate the collection cache key\n    var cachedCollectionKey = className + ':' + teamid + ':' + contract;\n\n    // load the cached collection\n    var models = cache[cachedCollectionKey];\n    if (!models) { return; }\n\n    elementsToAdd.forEach(function(element) {\n      models.push(element);\n    });\n  };\n\n  self.storeModel = function(teamid, contract, dataToken, className, modelToStore, optionalParams) {\n\n    // try to split the classname to get the host\n    var classNameValues = className.split('.');\n    var hostName = 'global';\n    var classNameValue = className;\n    if (classNameValues.length >= 2) {\n      hostName = classNameValues[0];\n      classNameValues.splice(0,1);\n      classNameValue = classNameValues.join('.');\n    }\n\n    // invalidate cache\n    var cachedCollectionKey = className + ':' + teamid + ':' + contract;\n    delete cache[cachedCollectionKey];\n\n    // check if we ask for a valid collection\n    var operationCallback = $eaDataSourceManager.queryInsertOrMergeDataSourceOperation(hostName, classNameValue, optionalParams.collection);\n    if (!operationCallback) {\n      return $q.reject(new Error('StoreModel: Invalid collection ' + optionalParams.collection + ' for datasource ' + hostName + ':' + classNameValue));\n    } else {\n      return operationCallback(teamid, contract, dataToken, className, modelToStore, optionalParams);\n    }\n  };\n\n  self.deleteModel = function(teamid, contract, dataToken, className, modelToDelete, optionalParams) {\n\n    // try to split the classname to get the host\n    var classNameValues = className.split('.');\n    var hostName = 'global';\n    var classNameValue = className;\n    if (classNameValues.length >= 2) {\n      hostName = classNameValues[0];\n      classNameValues.splice(0,1);\n      classNameValue = classNameValues.join('.');\n    }\n\n    // invalidate cache\n    var cachedCollectionKey = className + ':' + teamid + ':' + contract;\n    delete cache[cachedCollectionKey];\n\n    // check if we ask for a valid collection\n    var operationCallback = $eaDataSourceManager.queryDeleteDataSourceOperation(hostName, classNameValue, optionalParams.collection);\n    if (!operationCallback) {\n      return $q.reject(new Error('DeleteModel: Invalid collection ' + optionalParams.collection + ' for datasource ' + hostName + ':' + classNameValue));\n    } else {\n      return operationCallback(teamid, contract, dataToken, className, modelToDelete, optionalParams);\n    }\n  };\n\n  // Invalidates all cached collections so that everything need to be reloaded from the network again\n  self.invalidate = function(cacheHash) {\n    cache = {};\n    currentCacheHash = cacheHash || rfc4122.v4();\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataAggregateOperations', function() {\n  var self = this;\n\n  self.sum = function(data, property) {\n    var result = 0;\n    data.forEach(function(element) {\n\n      if (property) {\n        result += element[property];\n      } else {\n        result += element\n      }\n    });\n    return result;\n  };\n\n  self.count = function(reportsData, property) {\n    if (property && !Array.isArray(reportsData)) {\n      return reportsData[property].length;\n    } else {\n      return reportsData.length;\n    }\n  };\n\n  self.avg = function(reportsData, property) {\n    var c = self.count(reportsData, property);\n    var s = self.sum(reportsData, property);\n    return s / c;\n  };\n\n  self.distinct = function(reportsData, property, containsValue) {\n    var result = [];\n\n    function addToResultIfFitsToContainsValue(element) {\n\n      if (!containsValue) {\n        result.push(element);\n      } if (element && element.indexOf && element.indexOf(containsValue) !== -1) {\n        result.push(element);\n      }\n    }\n\n    // check if we have data\n    if (!reportsData || reportsData.length === 0) { return []; }\n\n    // distinct the values\n    reportsData.forEach(function(element) {\n      var v = element[property];\n\n      if (Array.isArray(v)) {\n        v.forEach(function(i) {\n          if (result.indexOf(i) === -1) {\n            addToResultIfFitsToContainsValue(i);\n          }\n        });\n      } else {\n        if (result.indexOf(v) === -1) {\n          addToResultIfFitsToContainsValue(v);\n        }\n      }\n    });\n\n    // sort\n    result.sort();\n\n    // done\n    return result;\n  };\n\n  self.sumplusaggr = function(data, property, prevValue)\n  {\n    return self.sum(data, property) + prevValue;\n  }\n\n  var operations = {\n    sum: self.sum,\n    count: self.count,\n    avg: self.avg,\n    distinct: self.distinct,\n    sumplusaggr: self.sumplusaggr\n  };\n\n  self.execute = function(func, reportsData, property, other) {\n    var op = operations[func];\n    if (op) {\n      return op(reportsData, property, other);\n    } else {\n      return -1;\n    }\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataGroupOperations', function($q) {\n  var self = this;\n\n  function groupBy(data, keys) {\n\n    if (keys.length === 0) { return data; }\n\n    // The current key to perform the grouping on:\n    var key = keys[0];\n\n    // Loop through the data and construct buckets for\n    // all of the unique keys:\n    var groups = {};\n    for (var i = 0; i < data.length; i++)\n    {\n      var row = data[i];\n      var groupValue = row[key];\n\n      if (groups[groupValue] === undefined)\n      {\n        groups[groupValue] = [];\n      }\n\n      groups[groupValue].push(row);\n    }\n\n    // Remove the first element from the groups array:\n    keys.reverse();\n    keys.pop();\n    keys.reverse();\n\n    // If there are no more keys left, we're done:\n    if (keys.length === 0) { return groups; }\n\n    // Otherwise, handle further groupings:\n    for (var group in groups)\n    {\n      groups[group] = groupBy(groups[group], keys.slice());\n    }\n\n    return groups;\n  }\n\n  function addElementToGroupSafely(groupedResult, groupKeyValue, groupElement) {\n\n    // get the lowercase key value\n    var groupKeyValueLowerCases = groupKeyValue.toLowerCase();\n\n    // generate a new group if needed\n    if (groupedResult[groupKeyValueLowerCases] === undefined) { groupedResult[groupKeyValueLowerCases] = { elements: [], name: groupKeyValue }; }\n\n    // add the element\n    groupedResult[groupKeyValueLowerCases].elements.push(groupElement);\n  }\n\n  self.groupBy = function(data, properties) {\n    if (data) {\n      return $q.when(groupBy(data, properties));\n    } else {\n      return $q.when({});\n    }\n  };\n\n  self.groupBySingleDimension = function(data, property) {\n\n    var groupedResult = {};\n\n    data.forEach(function(element) {\n\n      var groupKeyValue = element[property];\n      if (!groupKeyValue) { return; }\n\n      if (Array.isArray(groupKeyValue) && groupKeyValue.length > 0) {\n        groupKeyValue.forEach(function (groupKeyChildValue) {\n\n            // ignore invalid values\n            if (groupKeyChildValue === null || groupKeyChildValue === undefined) { return; }\n\n            // add to goup\n            addElementToGroupSafely(groupedResult, groupKeyChildValue, element);\n        });\n      } else if (Array.isArray(groupKeyValue) && groupKeyValue.length === 0) {\n        addElementToGroupSafely(groupedResult, '- no tag -', element);\n      } else {\n        addElementToGroupSafely(groupedResult,groupKeyValue, element);\n      }\n    });\n\n    return $q.when(groupedResult);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataFilterOperations', function($q) {\n  var self = this;\n\n  var fieldPropertyMapping = {\n    'SubscriptionName': 'SubscriptionName',\n    'ServiceName': 'ServiceName',\n    'ServiceCategory': 'ServiceCategory',\n    'ServiceType': 'ServiceType',\n    'ServiceSize': 'ServiceSize',\n    'ServiceCosts': 'ServiceCosts',\n    'ServiceQuantity': 'ServiceQuantity',\n    'ServiceUnit' : 'ServiceQuantityUnit',\n    'Tag': 'ServiceTags',\n    'CostCenter': 'CostCenter',\n    'Department': 'Department',\n    'ResourceGroup': 'ResourceGroup'\n  };\n\n  // ReportLastSync: Sat Nov 07 2015 09:13:20 GMT+0100 (CET)\n  // ReportMonth: \"11\"\n  // ReportYear: \"2015\"\n\n  var conditionOperations = {\n    '=': function(left, right) {\n      return (left === right);\n    },\n    '<>': function(left, right) {\n      return left !== right;\n    },\n    '<': function(left, right) {\n      return left < right;\n    },\n    '<=': function(left, right) {\n      return left <= right;\n    },\n    '>': function(left, right) {\n      return left > right;\n    },\n    '>=': function(left, right) {\n      return left >= right;\n    },\n    'contains': function(left, right) {\n      return (left.indexOf(right) !== -1);\n    },\n    'notContains': function(left, right) {\n      return (left.indexOf(right) === -1);\n    },\n    'startsWith': function(left, right) {\n      return (left.indexOf(right) === 0);\n    },\n    'notStartsWith': function(left, right) {\n      return (left.indexOf(right) !== 0);\n    }\n  };\n\n  var conditionOperationsValueForUndefined = {\n    '=': false,\n    '<>': true,\n    '<': true,\n    '<=': true,\n    '>': false,\n    '>=': false,\n    'contains': false,\n    'notContains': true,\n    'startsWith': false,\n    'notStartsWith': true\n  };\n\n  function createFilterGroups(rules) {\n    // build the filter tree\n    var filterGroups= [];\n\n    var currentFilterChilds = [];\n\n    rules.forEach(function(filterElement) {\n\n      // check if we need to create a new group\n      if (filterElement.Operator === 'OR') {\n\n        // add the element to the groups\n        filterGroups.push(currentFilterChilds);\n\n        // recreate the element\n        currentFilterChilds = [];\n      }\n\n      // add the element to the group\n      currentFilterChilds.push(filterElement);\n    });\n\n    // we need to add the last child\n    filterGroups.push(currentFilterChilds);\n\n    return filterGroups;\n  }\n\n  self.compileFilter = function(filterToApply) {\n    if (!filterToApply || !filterToApply.Id) { return function() { return true; }; }\n\n    var filterGroups= createFilterGroups(filterToApply.Rules);\n\n    // return the filter function\n    return function(element) {\n\n      // contains the global state\n      var passedRuleCheck = false;\n\n      // visit every filter group until the first filter group\n      // could be validated\n      filterGroups.every(function(filterSubGroup) {\n\n        // visit every subgroup\n        passedRuleCheck = filterSubGroup.every(function(filterElement) {\n\n          // map the field alue\n          var fieldPropertyMapped = fieldPropertyMapping[filterElement.Field];\n          if (!fieldPropertyMapped) { fieldPropertyMapped = filterElement.Field; }\n\n          // read the field value\n          var fieldValue = element[fieldPropertyMapped];\n\n          // check if we have a value\n          if (!fieldValue) {\n            return conditionOperationsValueForUndefined[filterElement.Condition];\n          }\n\n          // check if we need to convert the rule data to a number\n          var ruleValue = filterElement.Value;\n          if (!isNaN(fieldValue)) {\n            ruleValue = parseFloat(filterElement.Value);\n          }\n\n          // compare strings correctly\n          if (filterElement.Compare === 'CaseInSensitive') {\n            fieldValue = typeof fieldValue === 'string' ? fieldValue.toLowerCase() : fieldValue;\n            ruleValue = typeof ruleValue === 'string' ? ruleValue.toLowerCase() : ruleValue;\n          }\n\n          // check if we pass the test\n          if (!conditionOperations[filterElement.Condition](fieldValue, ruleValue)) {\n            return false;\n          } else {\n            return true;\n          }\n        });\n\n        if (passedRuleCheck) {\n          return false;\n        } else {\n          return true;\n        }\n      });\n\n      // return the global result\n      return passedRuleCheck;\n    };\n  };\n\n  self.applyFilter = function(data, filterToApply) {\n\n    // if no filter applied return the element\n    if (!filterToApply || !filterToApply.Id) { return $q.when(data); }\n\n    // compile the filter\n    var compiledFilter = self.compileFilter(filterToApply);\n\n    // filter the elements\n    return self.applyCompiledFilter(data, compiledFilter);\n  };\n\n  self.applyCompiledFilter = function(data, compiledFilter) {\n\n    var filteredElements = data.filter(function(element) {\n      return compiledFilter(element);\n    });\n\n    // done\n    return $q.when(filteredElements);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataRawSources', function($q, $http, $injector, $eaDataSourceManager, $eaReportData, $eaBackend, moment, $eaBackendBase, $acDataSourceClasses, $acDataSourceSettings, $acDataSourceHelper) {\n  var self = this;\n  var registeredPlugins = [];\n\n  function loadServiceTypeMetainformation(/*teamid, contract, dataToken, className, cacheHash, optionalParams*/) {\n    // load the service definitions from the server\n    return $acDataSourceSettings.loadDataFromStaticUrl('service_definitions.json').then(function(result) {\n\n      var models = [];\n\n      result.forEach(function(item) {\n        var model = new $acDataSourceClasses.ServiceDefinitionClass();\n        model.ServiceType = item.ServiceType;\n        model.ServiceTitle = item.ServiceTitle;\n        model.ServiceDescription = item.ServiceDescription;\n        models.push(model);\n      });\n\n      return $q.when(models);\n    });\n  }\n\n  // register the global data sources\n  self.registerDataSources = function() {\n\n    // general data\n    $eaDataSourceManager.registerDataSource('global', 'ServiceDefinitionClass', null, loadServiceTypeMetainformation);\n\n    // get the module\n    var mod = angular.module('azureCostsFeApp');\n\n    // visit all service\n    mod._invokeQueue.forEach(function(item) {\n\n      // we only work with services\n      if (item[1] !== 'service') { return; }\n\n      // every service needs to start with $acDataSource-prefix\n      if (item[2][0].indexOf('$acDataSource') !== 0) { return; }\n\n      // check if the service was registered\n      if (registeredPlugins.indexOf(item[2][0]) !== -1) {\n        console.log(\"!!!ALERT!!!: Datasource Plugin \" + item[2][0] + \" was used one times more, looks like you forgot to rename a copied service\")\n        return;\n      }\n\n      // add the service plugin\n      registeredPlugins.push(item[2][0]);\n\n      // instanciate the service\n      var serviceToWorkWith = $injector.get(item[2][0]);\n\n      // check if we implement our interface\n      if (!angular.isFunction(serviceToWorkWith.registerDataSources)) {return; }\n\n      // register the data sources\n      console.log('Register Datasources from ' + item[2][0]);\n      serviceToWorkWith.registerDataSources($eaDataSourceManager);\n    });\n  };\n\n});\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataExportOperations', function($q) {\n  var self = this;\n  var csvDelimiter = ';';\n\n  function addToResultSafely(result, value) {\n    if (!result) {\n      return value;\n    } else if (result[result.length - 1] === '\\n') {\n      return result + value;\n    } else {\n      return result + csvDelimiter + value;\n    }\n  }\n\n  self.exportListTo = function(format, data, headerProperties, options) {\n    if (headerProperties.length === 0) {\n      return $q.when('No Header');\n    }\n\n    // check the aount of data\n    if (data === null ||data === undefined ||data.length === 0) {\n      return $q.when('No Data');\n    }\n\n    // generate the headline\n    var result;\n    headerProperties.forEach(function (k) {\n\n      // check if we need to generate sub-subElement\n      if (angular.isObject(k)) {\n        k[(Object.keys(k)[0])].forEach(function(s) {\n          // remove String in the property\n          s = s.replace('String', '');\n\n          // uppercase the string\n          s = s.capitalizeFirstLetter();\n\n          // assign\n          result = addToResultSafely(result, s);\n        });\n      }  else {\n        // remove String in the property\n        k = k.replace('String', '');\n\n        // remove tag if needd\n        k = k.replace('tag:', '');\n\n        // uppercase the string\n        k = k.capitalizeFirstLetter();\n\n        // assign\n        result = addToResultSafely(result, k);\n      }\n    });\n\n    result += '\\r\\n';\n\n    // visit every element\n    data.forEach(function(line) {\n\n      // visit the properties\n      headerProperties.forEach(function(k) {\n\n        var subKeys = [];\n\n        if (angular.isObject(k)) {\n          subKeys = k[Object.keys(k)[0]];\n          k = Object.keys(k)[0];\n        }\n\n        if (k.startsWith('tag:')) {\n          var tagName = k.replace('tag:', '');\n\n          if (line.GroupTags) {\n            result = addToResultSafely(result, line.GroupTags[tagName] || line.GroupTags[tagName.downCaseFirstLetter()] || 'Default');\n          } else if (line['AzureTag:' + tagName])\n          {\n            result = addToResultSafely(result, line['AzureTag:' + tagName]);\n          } else {\n            result = addToResultSafely(result, 'Default');\n          }\n        } else {\n          var value = line[k];\n          if (csvDelimiter === ',' && Array.isArray(value)) {\n            result = addToResultSafely(result, value.join(';'));\n          } else if (angular.isObject(value) && !angular.isArray(value)) {\n            subKeys.forEach(function (sk) {\n              var subKeyValue = value[sk] ? value[sk] : 0;\n              result = addToResultSafely(result, subKeyValue.toFixed(20).replace('.', options.decimalSeparator));\n            });\n          } else if (angular.isNumber(value)) {\n            result = addToResultSafely(result, value.toFixed(20).replace('.', options.decimalSeparator));\n          } else if (value === undefined || value === null) {\n            result = addToResultSafely(result, '');\n          } else {\n            result = addToResultSafely(result, value.toString());\n          }\n        }\n      });\n\n      result += '\\r\\n';\n    });\n\n    // done\n    return $q.when(result);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataColorThemeGenerator', function() {\n  var self = this;\n\n  /*\n   * Helper to calculate the colors in a correct way based on our base color\n   * color map. In addition it allows to shade when the base color map is out of\n   * range.\n   */\n  function intToHexCodeString(n) {\n    n = parseInt(n, 10);\n\n    if (isNaN(n)) {\n      return '00';\n    } else {\n      n = Math.max(0, Math.min(n, 255));\n\n      return '0123456789ABCDEF'.charAt((n - n % 16) / 16) + '0123456789ABCDEF'.charAt(n % 16);\n    }\n  }\n\n  function rgbToHexWebCode(R,G,B) {return '#' + intToHexCodeString(R)+intToHexCodeString(G)+intToHexCodeString(B); }\n\n  function hexWebCodeShadeRelative(color, percent) {\n\n    /*jshint bitwise: false*/\n    var f=parseInt(color.slice(1),16),t=percent<0?0:255,p=percent<0?percent*-1:percent,R=f>>16,G=f>>8&0x00FF,B=f&0x0000FF;\n    return '#'+(0x1000000+(Math.round((t-R)*p)+R)*0x10000+(Math.round((t-G)*p)+G)*0x100+(Math.round((t-B)*p)+B)).toString(16).slice(1);\n  }\n\n  /*\n   * Defines the base color palette we can use for the diagram\n   */\n  var baseColorPalette = [\n    // Red: 242, 80, 34, #F25022\n    rgbToHexWebCode(242, 80, 34),\n\n    // Green: 127, 186, 34, #7FBA22\n    rgbToHexWebCode(127,186,34),\n\n    // Gray: 150, 150, 150, #1BA4EF\n    rgbToHexWebCode(150,150, 150),\n\n    // Yellow: 253, 185, 44, #FDB92C\n    rgbToHexWebCode(253, 185, 44),\n\n    // #194280\n    //rgbToHexWebCode(25, 66, 128)\n\n    // 89, 200, 242\n    rgbToHexWebCode(89, 200, 242)\n  ];\n\n  function getSubscriptionColorByIndex(colorIndex) {\n\n    var moduloResult = colorIndex % baseColorPalette.length;\n    var divResult = Math.floor(colorIndex / baseColorPalette.length);\n\n    var baseColor = baseColorPalette[moduloResult];\n    while(divResult > 0 ) {\n      divResult--;\n      baseColor = hexWebCodeShadeRelative(baseColor, -0.2);\n    }\n\n    return baseColor;\n  }\n\n  var colorStreamLastIndexMap = {};\n  var colorIndexMap = {};\n\n  // This method implements the existing color theme generator and ensures\n  // that for a give tag-value the system returns the same color\n  self.getColorFor = function(dataStreamType, colorTagValue) {\n\n    // check parameters\n    if (!dataStreamType || !colorTagValue) { return getSubscriptionColorByIndex(0); }\n\n    // generate the color stream index\n    var colorStreamIndex = dataStreamType + '#' + colorTagValue.toLowerCase();\n\n    // check if we have an index for this pair\n    var index = colorIndexMap[colorStreamIndex];\n    if (index === undefined) {\n\n      // get the last index of this stream\n      index = colorStreamLastIndexMap[dataStreamType];\n      if (index === undefined) { index = 0; } else { index++; }\n\n      // assign the index to this color stream\n      colorIndexMap[colorStreamIndex] = index;\n\n      // store this index as last index\n      colorStreamLastIndexMap[dataStreamType] = index;\n    }\n\n    // generate the color by index\n    return getSubscriptionColorByIndex(index);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataSourceManager', function($q) {\n  var self = this;\n\n  var dataSources = {};\n\n  // This function allows to register a new data source. Every data source needs to offer a query callback which can\n  // be used to get data from the source. This query callback needs to have he following siganture\n  //\n  // function(teamid, contract, dataToken, className, optionalPrams)\n  //\n  // dataSourceHost - A unique identifier of the hosting service for the datasource\n  // className      - The type of elements this datasource will return\n  // collection     - Defines the specific bucket we get the data from\n  //\n  // Hint: dataSourceHost + className must be unique, together\n  //\n  self.registerDataSource = function(dataSourceHost, className, collection, queryCallback, storeCallback, deleteCallback) {\n    dataSources[dataSourceHost + '#' + className + '#' + (collection ? collection : 'default')] = {\n        query: queryCallback,\n        store: storeCallback,\n        delete: deleteCallback\n    };\n  };\n\n  // Allows to query data from a data source. This calls are never cached so when you query information\n  // from a source with high latency (e.g. the network) please use the $eaDataCoordinator service because\n  // of the build in caching features.\n  //\n  self.queryDataSource = function(dataSourceHost, className, collection) {\n    var dataSource = dataSources[dataSourceHost + '#' + className + '#' + (collection ? collection : 'default')];\n    if (dataSource) {\n      return dataSource.query;\n    } else {\n      return dataSource;\n    }\n  };\n\n  self.queryInsertOrMergeDataSourceOperation = function(dataSourceHost, className, collection) {\n\n    // get the datasource\n    var dataSource = dataSources[dataSourceHost + '#' + className + '#' + (collection ? collection : 'default')];\n    if (!dataSource) {\n      return $q.reject(\"DataSource not found\");\n    } else if (!dataSource.store) {\n      return $q.reject(\"DataSource Store operation not supported\");\n    } else {\n      return dataSource.store;\n    }\n  };\n\n  self.queryDeleteDataSourceOperation = function(dataSourceHost, className, collection) {\n\n    // get the datasource\n    var dataSource = dataSources[dataSourceHost + '#' + className + '#' + (collection ? collection : 'default')];\n    if (!dataSource) {\n      return $q.reject(\"DataSource not found\");\n    } else if (!dataSource.delete) {\n      return $q.reject(\"DataSource Delete operation not supported\");\n    } else {\n      return dataSource.delete;\n    }\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDataJoinOperations', function() {\n  var self = this;\n\n  function isObject(val) {\n    if (val === null) { return false;}\n    return ( (typeof val === 'function') || (typeof val === 'object') );\n  }\n\n  /*\n   * This operation joins the leftData with the rightData and is able\n   * to build new object whcih contains the different value of two properties with the same name\n   */\n  self.join = function(dataArrays, objectIdentifier, objectonizePropertiesWithKey) {\n\n    // some checks\n    if (!dataArrays || dataArrays.length === 0) { return []; }\n\n    // our caches\n    var groupedDataArrays = {};\n    var flatDataArray = [];\n\n    // visit every data array\n    var dataArrayIndex = 0;\n    dataArrays.forEach(function(dataArray) {\n\n      // get the index\n      dataArrayIndex = dataArrays.indexOf(dataArray);\n\n      // visit every element\n      dataArray.forEach(function(dataElement) {\n\n        // ensure the dataElement contains the objectIdentifier\n        var objIdentifierValue = dataElement[objectIdentifier];\n        if (!objIdentifierValue) { return; }\n\n        // check what we need to do, just add the element or merge into\n        var objectClone = null;\n        if (!groupedDataArrays[objIdentifierValue]) {\n\n          // generate the clone\n          objectClone = JSON.parse(JSON.stringify(dataElement));\n          groupedDataArrays[objIdentifierValue] = objectClone;\n          flatDataArray.push(objectClone);\n\n          // add the initial marker\n          if (dataArrayIndex === 0) {\n            /*jshint -W069 */\n            objectClone['PartOfInitialArray'] = true;\n          } else {\n            /*jshint -W069 */\n            objectClone['PartOfInitialArray'] = false;\n          }\n\n        } else {\n          objectClone = groupedDataArrays[objIdentifierValue];\n        }\n\n        // just handle the objectonize-Properties\n        if (objectonizePropertiesWithKey) {\n\n          Object.keys(objectonizePropertiesWithKey).forEach(function(tokenizeKey) {\n\n            // get the right sub key\n            var tokenizeSubKey = dataElement[objectonizePropertiesWithKey[tokenizeKey]];\n\n            // read the value from our data element\n            var tokenizeValue = dataElement[tokenizeKey];\n\n            // extend the key\n            tokenizeKey = tokenizeKey + 'Aggregated';\n\n            // read the existing property\n            var targetProperty = objectClone[tokenizeKey];\n\n            // generate the object\n            if (!isObject(targetProperty)) {\n              objectClone[tokenizeKey] = {};\n              targetProperty = objectClone[tokenizeKey];\n            }\n\n            // assign the value\n            targetProperty[tokenizeSubKey] = tokenizeValue;\n          });\n        }\n      });\n\n    });\n\n    // done\n    return flatDataArray;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceHelperCspGenericSummary', function($acDataSourceSettings, $acDataSourceClasses, $q, $eaReportData, $eaBackend, $acTimelineGenerator, $injector, $eaBackendAzureCachedContentLoader) {\n  var self = this;\n\n\n  self.loadGenericView = function (teamid, accountId, viewId, collection, dataToken, className, currentHashKey, optionalParams) {\n    // inject dynamically to prevent circular dependency\n    var $eaDataCoordinator = $injector.get('$eaDataCoordinator');\n\n    // duplicate options\n    var duplicatedOptions = JSON.parse(JSON.stringify(optionalParams));\n    duplicatedOptions.collection = collection;\n\n    // build the hashkey\n    var hashKeyPartition = 'CSPAggregationCustomer.forAccount.'  + viewId + '.' + accountId;\n\n    // load the current hashes for this report category\n    return $eaBackend.dataGetTeamHashes(teamid, hashKeyPartition, dataToken).then(function(hashMap) {\n\n      // ensure we have a map\n      if (!hashMap) { hashMap = {}; }\n\n      // load the available periods\n      return $eaDataCoordinator.query(teamid, accountId, dataToken, 'PeriodClass', duplicatedOptions).then(function (periods) {\n\n        // prepare the data\n        var resultData = [];\n\n        // build resource information\n        var resourceInformation = periods.map(function(period) {\n          return {\n            Id: period.ReportId,\n            CacheIdentifier: 'empty',\n            CacheHash: 'empty'\n          }\n        });\n\n        // load the resources\n        return $eaBackendAzureCachedContentLoader.dataRequestCachedResourcesWithRetry(teamid, accountId, resourceInformation, dataToken, {\n          resourceEndpoint: function(teamid, contractNumber, resourceId, cacheIdentifier, jwtToken, retry) {\n            return $eaBackend.dataCspGetCustomersSpendingsInAccountV2(viewId, teamid, accountId, resourceId, jwtToken, hashMap, retry);\n          }\n        }).then(function (loadedItems) {\n          if (Array.isArray(loadedItems)) {\n            loadedItems.forEach(function(items) {\n              resultData.appendArray(items);\n            })\n          }\n\n          return $q.when(resultData);\n        });\n      });\n    });\n  };\n});\n","'use strict';\n\n/*\n * This service allows to send messages to the frontend when ever the data processing\n * takes a while\n */\nangular.module('azureCostsFeApp').service('$acDpnService', function($rootScope) {\n  var self = this;\n\n  var processingItems = [];\n\n  self.addProcessingItem = function(itemId)\n  {\n    // add the item\n    if (processingItems.indexOf(itemId) === -1) {\n      processingItems.push(itemId);\n    }\n\n    // update the listener\n    $rootScope.$emit('acDpnService.processingItemAdded', itemId);\n  };\n\n  self.removeProcessingItem = function(itemId)\n  {\n    var idx = processingItems.indexOf(itemId);\n\n    if (idx > -1) {\n      processingItems.splice(idx, 1);\n    }\n\n    // update the listener\n    $rootScope.$emit('acDpnService.processingItemRemoved', itemId);\n\n    if (processingItems.length === 0)\n    {\n      // update the listener\n      $rootScope.$emit('acDpnService.processingFinished', itemId);\n    }\n  };\n\n  self.onProcessingItemsChanged = function(cb)\n  {\n    $rootScope.$on('acDpnService.processingItemAdded', function (event, data) {\n      cb(processingItems);\n    });\n\n    $rootScope.$on('acDpnService.processingItemRemoved', function (event, data) {\n      cb(processingItems);\n    });\n  };\n\n  self.onProcessingFinished = function(cb)\n  {\n    $rootScope.$on('acDpnService.processingFinished', function (event, data) {\n      cb();\n    });\n  };\n});\n","'use strict';\n\n/**\n * @ngdoc service\n * @name azureCostsFeApp.eaBackend\n * @description\n * # eaBackend\n * Service in the azureCostsFeApp.\n */\nangular.module('azureCostsFeApp').service('$acWizardHelpers', function() {\n  var self = this;\n\n  self.getCurrentStep = function(currentState)\n  {\n    try {\n      var splittedState = currentState.name.split('.');\n      return splittedState[splittedState.length - 1].split('-')[0];\n    } catch(e) {\n      return 'step01';\n    }\n  }\n\n});\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acWaitHelpers', function($q, $timeout) {\n  var self = this;\n\n  self.wait = function(seconds)\n  {\n    var defer = $q.defer();\n\n    $timeout(function() {\n      defer.resolve();\n    }, seconds * 1000);\n\n    return defer.promise;\n  }\n\n});\n\n\n","'use strict';\n\n/*\n * This service just contains general settings which can be used from teh data sources.\n */\nangular.module('azureCostsFeApp').service('$acDataSourceSettings', function($eaBackendBase, $http, $q, $acDataSourceClasses, $eaConfig) {\n  var self = this;\n\n  self.loadDataFromStaticUrl = function(url) {\n\n    // define the load url\n    var loadUrl = $eaConfig.dataPath + '/' + url;\n\n    // replace with cdnEntrypoint if possible\n    if ($eaConfig.cdnEntrypoint && loadUrl[0] === '/') {\n      loadUrl = $eaConfig.cdnEntrypoint + loadUrl\n    }\n\n    return $eaBackendBase.extractDataFromResponse($http.get(loadUrl));\n  };\n\n  self.loadStaticDataGenericCallback = function(teamid, contract, dataToken, className, cacheHash, optionalParams) {\n    // add group options if required\n    optionalParams = optionalParams || {};\n\n    // set the collection parameter\n    optionalParams.collection = optionalParams.collection || 'default';\n\n    // get the class model from className\n    var classModel = $acDataSourceClasses[className];\n    if (!classModel) { return $q.reject(new Error('Invalid class name: ' + className)); }\n\n    // load by collection\n    return self.loadDataFromStaticUrl('static_' + className + '_' + optionalParams.collection + '.json').then(function(data) {\n      return $q.when(data.map(function(item) {\n        return new classModel(item);\n      }));\n    });\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceClasses', function() {\n  var self = this;\n\n  self.DashboardItemClass = function(initialData) {\n    initialData = initialData || {};\n\n    return {\n      Size: {\n        x: initialData.Size && initialData.Size.x ? initialData.Size.x : 0,\n        y: initialData.Size && initialData.Size.y ? initialData.Size.y : 0\n      },\n      Position: {\n        x: initialData.Position && initialData.Position.x ? initialData.Position.x : 0,\n        y: initialData.Position && initialData.Position.y ? initialData.Position.y : 0\n      },\n      ItemType: initialData.ItemType || '',\n      ItemUuid: initialData.ItemUuid || '',\n      ItemTitle: initialData.ItemTitle || '',\n      ItemOptions: initialData.ItemOptions || {},\n      ItemDependencies: initialData.ItemDependencies || [],\n      ItemWidgetType: initialData.ItemWidgetType || 'System'\n    };\n  };\n\n  self.ReportClass = function(initialData) {\n    return {\n      Contract: initialData.Contract,\n      Definition: 'unknown',\n      DailyReportEnbaled: false,\n      DailyReportBreakDownFirst: '',\n      DailyReportBreakDownSecond: '',\n      MonthlyCostLimit: 0,\n      Currency: '€',\n      CreatedAt: null,\n      UpdatedAt: null,\n      Token: null,\n      Reports: []\n    };\n  };\n\n  self.SpendingEntryClass = function() {\n    return {\n      ReportId: '',\n      ReportMonth: -1,\n      ReportYear: -1,\n      ReportLastSync: 'Xxx',\n      ReportCurrency: 'EUR',\n      ReportCurrencySymbol: '€',\n      ServiceId: '',\n      ServiceName: '',\n      ServiceCosts: '',\n      ServiceType: '',\n      ServiceCategory: '',\n      ServiceSize: '',\n      ServiceTags: [],\n      ServiceIcon: '',\n      SubscriptionName: '',\n      SubscriptionId: '',\n      CostCenter: '',\n      Department: '',\n      ResourceGroup: ''\n    };\n  };\n\n  self.SubscriptionEntryClass = function() {\n    return {\n      SubscriptionId: '',\n      SubscriptionName: '',\n      OfferingType: '',\n      Country: '',\n      Contacts: []\n    };\n  };\n\n  self.TeamMembershipEntryClass = function() {\n    return {\n      TeamId: '',\n      UserId: '',\n      FirstName: '',\n      LastName: '',\n      Contact: '',\n      LastLogin: null,\n      LoginCount: 0,\n      Role: '',\n      SignUp: null,\n      SubscriptionPermissions: null,\n      LiveId: null,\n      Type: ''\n    };\n  };\n\n  self.SpendingHistoryEntryClass = function() {\n    return {\n      HistoryDay:             '0000-00-00',\n      HistoryCurrency:        'EUR',\n      HisotryCurrencySymbol:  '€',\n      HistoryDayOverallCosts: '',\n      SubscriptionId:         '',\n      SubscriptionDayCosts:   '',\n      SubscriptionDayCostsDiff:   ''\n    };\n  };\n\n  self.ServiceDefinitionClass = function() {\n    return {\n      ServiceType: '',\n      ServiceTitle: '',\n      ServiceDescription: ''\n    };\n  };\n\n  self.SpendingFilterClass = function() {\n    return {\n      Id: '',\n      Name: '',\n      Owner: '',\n      Rules: null,\n      TeamId: 'personal'\n    };\n  };\n\n  self.SpendingGroupOptionClass = function(initialData) {\n    return {\n      GroupLabel: initialData.GroupLabel        || undefined,\n      GroupProperty: initialData.GroupProperty  || undefined,\n      RequiredPlan: initialData.RequiredPlan    || undefined,\n      Compare: initialData.Compare ||'CaseSensitive'\n    };\n  };\n\n  self.PeriodClass = function(initialData) {\n    return {\n      ReportId: initialData.ReportId\n    };\n  };\n\n  self.ResellerCustomerEntryClass = function() {\n    return {\n      ReportId: '',\n      ReportMonth: -1,\n      ReportYear: -1,\n      ReportLastSync: 'Xxx',\n      ReportCurrency: 'EUR',\n      ReportCurrencySymbol: '€',\n      AccountId: '',\n      CustomerId: '',\n      CustomerCompany: '',\n      CustomerContact: '',\n      CustomerDomain: '',\n      CustomerState: '',\n      CustomerTenantId: '',\n      EntitlementId: '',\n      EntitlementName: '',\n      Costs: 0.0\n    };\n  };\n\n  self.ResellerCustomerClass = function() {\n    return {\n      AccountId: '',\n      CustomerId: '',\n      CustomerCompany: '',\n      CustomerContact: '',\n      CustomerDomain: '',\n      CustomerState: '',\n      CustomerTenantId: '',\n      ActivatedAt: null,\n      NewCommerce: false\n    };\n  };\n\n  self.ReportClassificationClass = function(initialData) {\n    return {\n      ReportPeriod: initialData.ReportPeriod\n    };\n  };\n\n  self.ResellerT2CustomerEntryClass = function() {\n    return {\n      ReportId: '',\n      ReportMonth: -1,\n      ReportYear: -1,\n      ReportCurrency: 'EUR',\n      ReportCurrencySymbol: '€',\n      ResellerAccountId: '',\n      ResellerAccountName: '',\n      ResellerTeamId: '',\n      CustomerId: '',\n      CustomerCompany: '',\n      CustomerState: '',\n      Costs: 0.0\n    };\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceV1Spendings', function($acDataSourceHelper, $acDataSourceSettings, $acDataSourceClasses, $q, $eaReportData) {\n  var self = this;\n\n  function generateServiceIconClass(serviceModel) {\n\n    // get the icon type\n    var iconClass = serviceModel.ServiceCategory.toLowerCase();\n\n    // replace spaces with _\n    iconClass = iconClass.replace(/ /g, '_');\n\n    return iconClass;\n  }\n\n  function mapSpendingEntries(teamid, contract, dataToken, reportsInfo, loadedData)\n  {\n    // adapt the data\n    var models = [];\n\n    // the hash for tags\n    var azureTagCaseAdaptionHash = {};\n\n    loadedData.forEach(function (report) {\n\n      // check if we did not get data\n      if (typeof(report) === 'string') {\n        console.log(\"Report has no values, skipping\");\n        return;\n      }\n\n      report.services.forEach(function (service) {\n        \n        // generate the model\n        var model = new $acDataSourceClasses.SpendingEntryClass();\n\n        // fill the normal properties\n        model.ReportId = report.year + '-' + report.month;\n        model.ReportMonth = report.month;\n        model.ReportYear = report.year;\n        model.ReportLastSync = report.lastSync ? new Date(report.lastSync) : null;\n        model.ReportCurrency = reportsInfo.Currency;\n        model.ReportCurrencySymbol = $acDataSourceHelper.getCurrencySymbolFromCurrency(reportsInfo.Currency);\n        model.ServiceId = service.serviceId;\n        model.ServiceName = service.name;\n        model.ServiceCosts = service.costs;\n        model.ServiceCategory = service.type;\n        model.ServiceType = service.subtype;\n        model.ServiceSize = service.size;\n        model.ServiceQuantity = service.quantity;\n        model.ServiceQuantityUnit = service.unit;\n        model.ServiceTags = service.tags;\n        model.ServiceTagsV1 = service.tagsV1;\n        model.ServiceTagsV2 = service.tagsV2;\n        model.ServiceTagsV3 = service.tagsV3;\n        model.SubscriptionName = service.subscription;\n        model.SubscriptionId = service.subscriptionId;\n        model.CostCenter = service.costcenter;\n        model.Department = service.department;\n        model.ResourceGroup = service.resourcegroup;\n        model.ResourceUri = service.resourecuri;\n        model.EntityId = model.ReportId + '-' + model.ServiceId;\n        model.ServiceDailyCosts = service.dailyCosts;\n        model.ServiceDailyQuantities = service.dailyQuantity;\n        model.ServiceIcon = 'servicetype ' + generateServiceIconClass(model);\n\n        // generate the dynamic tag properties\n        if (service.azureTags) {\n\n          Object.keys(service.azureTags).forEach(function (k) {\n\n            // check if we had the tag before\n            if (!azureTagCaseAdaptionHash[k.toUpperCase()]) {\n              azureTagCaseAdaptionHash[k.toUpperCase()] = k;\n            }\n\n            // get the correct tagname just in case of case sensitive duplicates\n            var correctedTagName = 'AzureTag:' + azureTagCaseAdaptionHash[k.toUpperCase()];\n            model[correctedTagName] = service.azureTags[k];\n          })\n        }\n\n        // add the model\n        models.push(model);\n      });\n    });\n\n    // done\n    return $q.when(models);\n  }\n\n  function loadReportHistoryData(teamid, contract, dataToken, className, cacheHash, optionalParams) {\n\n    // load the values from the backend\n    return $eaReportData.loadContractDetails(teamid, contract, dataToken, optionalParams).then(function(contractDetails) {\n\n      // load the historical data (we support last 30 days\n      return $eaReportData.loadReportHistory(teamid, contract, dataToken).then(function(historyData) {\n\n        var result = [];\n\n        // visit every day\n        Object.keys(historyData).forEach(function(day) {\n\n          var dayData = historyData[day];\n          var overallCosts = dayData.overall;\n\n          // get the daybefore\n          var dayBefore = historyData[moment(day).add(-1, 'days').format('YYYY-MM-DD')];\n          if (!dayBefore) { dayBefore = dayData; }\n\n          // visit every subscription\n          Object.keys(dayData).forEach(function(subscription) {\n            if (subscription !== 'overall') {\n\n              // ensure we have a day before\n              if (!dayBefore[subscription]) { dayBefore[subscription] = 0.0; }\n              /*jshint -W069 */\n              if (!dayBefore['overall']) { dayBefore['overall'] = 0.0; }\n\n              // build the entity\n              var entry = new $acDataSourceClasses.SpendingHistoryEntryClass();\n              entry.HistoryDay = day;\n              entry.HistoryCurrency = contractDetails.Currency;\n              entry.HistoryCurrencySymbol = $acDataSourceHelper.getCurrencySymbolFromCurrency(contractDetails.Currency);\n              entry.HistoryDayOverallCosts = overallCosts;\n              entry.HistoryDayOverallCostsDiff = overallCosts - dayBefore['overall'];\n              entry.SubscriptionId = subscription;\n              entry.SubscriptionDayCosts = dayData[subscription];\n              entry.SubscriptionDayCostsDiff = dayData[subscription] - dayBefore[subscription];\n\n              // check the first day in month\n              if (moment(day).date() === 1) {\n                entry.SubscriptionDayCostsDiff = entry.SubscriptionDayCosts;\n                entry.HistoryDayOverallCostsDiff = entry.HistoryDayOverallCosts;\n              }\n\n              // should we have negative values set to 0\n              if (entry.SubscriptionDayCostsDiff < 0) { entry.SubscriptionDayCostsDiff = 0; }\n              if (entry.HistoryDayOverallCostsDiff < 0) { entry.HistoryDayOverallCostsDiff = 0; }\n\n              // done\n              result.push(entry);\n            }\n          });\n        });\n\n        return $q.when(result);\n      });\n    });\n  }\n\n  function mapSpendingHistoryEntries(teamid, contract, dataToken, reportsInfo, loadedData)\n  {\n    var result = [];\n\n    // check\n    if (!Array.isArray(loadedData) || loadedData.length <= 0) {\n      return $q.when([]);\n    }\n\n    // get the data\n    var historyData = loadedData[0];\n\n    // visit every day\n    Object.keys(historyData).forEach(function(day) {\n\n      var dayData = historyData[day];\n      var overallCosts = dayData.overall;\n\n      // get the daybefore\n      var dayBefore = historyData[moment(day).add(-1, 'days').format('YYYY-MM-DD')];\n      if (!dayBefore) { dayBefore = dayData; }\n\n      // visit every subscription\n      Object.keys(dayData).forEach(function(subscription) {\n        if (subscription !== 'overall') {\n\n          // ensure we have a day before\n          if (!dayBefore[subscription]) { dayBefore[subscription] = 0.0; }\n          /*jshint -W069 */\n          if (!dayBefore['overall']) { dayBefore['overall'] = 0.0; }\n\n          // build the entity\n          var entry = new $acDataSourceClasses.SpendingHistoryEntryClass();\n          entry.HistoryDay = day;\n          entry.HistoryCurrency = reportsInfo.Currency;\n          entry.HistoryCurrencySymbol = $acDataSourceHelper.getCurrencySymbolFromCurrency(reportsInfo.Currency);\n          entry.HistoryDayOverallCosts = overallCosts;\n          entry.HistoryDayOverallCostsDiff = overallCosts - dayBefore['overall'];\n          entry.SubscriptionId = subscription;\n          entry.SubscriptionDayCosts = dayData[subscription];\n          entry.SubscriptionDayCostsDiff = dayData[subscription] - dayBefore[subscription];\n\n          // check the first day in month\n          if (moment(day).date() === 1) {\n            entry.SubscriptionDayCostsDiff = entry.SubscriptionDayCosts;\n            entry.HistoryDayOverallCostsDiff = entry.HistoryDayOverallCosts;\n          }\n\n          // should we have negative values set to 0\n          if (entry.SubscriptionDayCostsDiff < 0) { entry.SubscriptionDayCostsDiff = 0; }\n          if (entry.HistoryDayOverallCostsDiff < 0) { entry.HistoryDayOverallCostsDiff = 0; }\n\n          // done\n          result.push(entry);\n        }\n      });\n    });\n\n    return $q.when(result);\n  }\n\n  self.registerDataSources = function(dataSourceManager) {\n\n    // loads the different group options\n    dataSourceManager.registerDataSource('global', 'SpendingGroupOptionClass', 'spendings', $acDataSourceSettings.loadStaticDataGenericCallback);\n\n    // Register load for ReportClasses\n    $acDataSourceHelper.registerDataSourceReportClass(dataSourceManager, null);\n    $acDataSourceHelper.registerDataSourceReportClass(dataSourceManager, 'spendings');\n\n    // Register load for Spendings\n    $acDataSourceHelper.registerDataSourceSpendingEntryClassWithMappingCallback(dataSourceManager, null, 1, mapSpendingEntries);\n    $acDataSourceHelper.registerDataSourceSpendingEntryClassWithMappingCallback(dataSourceManager, 'spendings', 1, mapSpendingEntries);\n\n    // Register load for SpendingFilterClass\n    $acDataSourceHelper.registerDataSourceSpendingFilerClass(dataSourceManager, null);\n    $acDataSourceHelper.registerDataSourceSpendingFilerClass(dataSourceManager, 'spendings');\n\n    // Register load for SpendingHistoryEntryClass\n    $acDataSourceHelper.registerDataSourceSpendingHistoryEntryClassWithMappingCallback(dataSourceManager, null, 1, mapSpendingHistoryEntries);\n    $acDataSourceHelper.registerDataSourceSpendingHistoryEntryClassWithMappingCallback(dataSourceManager, 'spendings', 1, mapSpendingHistoryEntries);\n  }\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceV2Spendings', function($acDataSourceSettings, $acDataSourceClasses, $q, $eaBackend, $injector, $acDataSourceHelper) {\n  var self = this;\n\n  // load the subscriptions\n  function loadSubscriptions(teamid, contract, dataToken /*, className, optionalParams */) {\n    return $eaBackend.dataGetContractSubscriptions(teamid, contract, dataToken).then(function(loadedSubscriptions) {\n\n      var models = [];\n\n      loadedSubscriptions.forEach(function(subscription) {\n\n        var model = new $acDataSourceClasses.SubscriptionEntryClass();\n        model.SubscriptionId = subscription.Id;\n        model.SubscriptionName = subscription.Name;\n        model.OfferingType = subscription.Offering;\n        model.Country = subscription.Country;\n        model.Contacts = subscription.Contacts ? subscription.Contacts : [];\n        models.push(model);\n      });\n\n      return $q.when(models);\n    });\n  }\n\n  // called from our infrastructure to the define the different\n  // datasources this service handles\n  self.registerDataSources = function(dataSourceManager) {\n\n    // register the dashboard items for the csp portal\n    $acDataSourceHelper.registerDataSourceDashboardItemClass(dataSourceManager, null, 'spending_dashboard_definitions.json');\n    $acDataSourceHelper.registerDataSourceDashboardItemClass(dataSourceManager, 'spendings.v2', 'spending_dashboard_definitions_v2.json');\n\n    // Register the correct Report loader\n    $acDataSourceHelper.registerDataSourceReportClass(dataSourceManager, 'spendings.v2');\n\n    // loads the subscription entries\n    dataSourceManager.registerDataSource('global', 'SubscriptionEntryClass', null, loadSubscriptions);\n    $acDataSourceHelper.registerDataSourceSpendingEntryClassForCoreApi(dataSourceManager, 'spendings.v2');\n\n    // loads the different group options\n    dataSourceManager.registerDataSource('global', 'SpendingGroupOptionClass', 'spendings.v2', $acDataSourceSettings.loadStaticDataGenericCallback);\n\n    // load the available periods\n    $acDataSourceHelper.registerDataSourcePeriodClass(dataSourceManager, 'spendings');\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceV3Spendings', function($acDataSourceHelper, $acDataSourceSettings, $acDataSourceClasses, $q) {\n  var self = this;\n\n  function mapSpendingHistoryEntries(teamid, contract, dataToken, reportsInfo, loadedData) {\n\n    if (!Array.isArray(loadedData) || loadedData.length !== 1) {\n      return $q.when([]);\n    }\n\n    // get the data\n    var historyData = loadedData[0];\n\n    // set the result\n    var result = [];\n\n    // visit every item\n    historyData.ServiceCosts.forEach(function (item, itemIdx) {\n\n      // build the entity\n      var entry = new $acDataSourceClasses.SpendingHistoryEntryClass();\n      entry.HistoryDay = moment(historyData.StartDate).add(itemIdx, 'days').format(\"YYYY-MM-DD\");\n      entry.HistoryCurrency = reportsInfo.Currency;\n      entry.HistoryCurrencySymbol = $acDataSourceHelper.getCurrencySymbolFromCurrency(reportsInfo.Currency);\n      entry.HistoryDayOverallCosts = item;\n      entry.SubscriptionId = 'All';\n      entry.SubscriptionDayCosts = item;\n\n      // done\n      result.push(entry);\n    });\n\n    return $q.when(result);\n  }\n\n  self.registerDataSources = function(dataSourceManager) {\n\n    // define the collectionid\n    var collectionId = 'spendings.v3';\n\n    // load the correct data file\n    $acDataSourceHelper.registerDataSourceDashboardItemClass(dataSourceManager, collectionId, 'spending_dashboard_definitions_v3.json');\n\n    // loads the different group options\n    dataSourceManager.registerDataSource('global', 'SpendingGroupOptionClass', collectionId, $acDataSourceSettings.loadStaticDataGenericCallback);\n\n    // Register the generic method to load PeriodClasses correctly\n    $acDataSourceHelper.registerDataSourcePeriodClass(dataSourceManager, collectionId);\n\n    // Register the correct Report loader\n    $acDataSourceHelper.registerDataSourceReportClass(dataSourceManager, collectionId);\n\n    // Register the data report content loader\n    $acDataSourceHelper.registerDataSourceSpendingEntryClassForCoreApi(dataSourceManager, collectionId);\n\n    // History\n    $acDataSourceHelper.registerDataSourceSpendingHistoryEntryClassWithMappingCallback(dataSourceManager, 'spendings.v2', 2, mapSpendingHistoryEntries);\n    $acDataSourceHelper.registerDataSourceSpendingHistoryEntryClassWithMappingCallback(dataSourceManager, collectionId, 3, mapSpendingHistoryEntries);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceCsp', function($acDataSourceSettings, $acDataSourceHelper, $acDataSourceClasses, $q, $eaBackend, $acTimelineGenerator, $injector, $eaBackendDataModeSelector, $acDataSourceHelperCspGenericSummary) {\n  var self = this;\n\n  function loadCSPDashboardItemsByTemplate(teamid, contract, dataToken, className, currentHashKey, optionalParams, dashboardTemplate) {\n    var query = $acDataSourceHelper.getQueryDashboardItemsCallback(dashboardTemplate);\n    return query(teamid, contract, dataToken, className, currentHashKey, optionalParams);\n  }\n\n  // defines all functions for the CSP dashboard\n  function loadCSPDashboardItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var dashboardTemplate = 'csp_account_dashboard_definitions.json';\n    if (contract === 'CSP:Welcome') { dashboardTemplate = 'csp_welcome_dashboard_definitions.json'; }\n    return loadCSPDashboardItemsByTemplate(teamid, contract, dataToken, className, currentHashKey, optionalParams, dashboardTemplate);\n  }\n\n  function loadCSPDashboardItemsT2(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var dashboardTemplate = 'csp_account_t2_dashboard_definitions.json';\n    if (contract === 'CSP:Welcome') { dashboardTemplate = 'csp_welcome_dashboard_definitions.json'; }\n    return loadCSPDashboardItemsByTemplate(teamid, contract, dataToken, className, currentHashKey, optionalParams, dashboardTemplate);\n  }\n\n  function loadCSPDashboardItemsV2(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var dashboardTemplate = 'csp_account_dashboard_definitions_v2.json';\n    if (optionalParams && optionalParams.collection && optionalParams.collection === 'csp.ea.v2') { dashboardTemplate = 'csp_account_ea_dashboard_definitions_v2.json'; };\n    if (contract === 'CSP:Welcome') { dashboardTemplate = 'csp_welcome_dashboard_definitions.json'; }\n    return loadCSPDashboardItemsByTemplate(teamid, contract, dataToken, className, currentHashKey, optionalParams, dashboardTemplate);\n  }\n\n  function loadCSPDashboardItemsT2V2(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var dashboardTemplate = 'csp_account_t2_dashboard_definitions.json';\n    if (contract === 'CSP:Welcome') { dashboardTemplate = 'csp_welcome_dashboard_definitions.json'; }\n    return loadCSPDashboardItemsByTemplate(teamid, contract, dataToken, className, currentHashKey, optionalParams, dashboardTemplate);\n  }\n\n  // loads all customer report items for a specific contract\n  function loadCustomerReportItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n\n    // inject dynamically to prevent circular dependency\n    var $eaDataCoordinator = $injector.get('$eaDataCoordinator');\n\n    // load the available periods\n    return $eaDataCoordinator.query(teamid, contract, dataToken, 'PeriodClass', optionalParams).then(function(periods) {\n\n      // load the customer index first\n      return $eaDataCoordinator.query(teamid, contract, dataToken, 'ResellerCustomerClass', optionalParams).then(function(customers) {\n\n        // get the accountid\n        var accountId = contract.split(':')[1];\n\n        // loading the account\n        return $eaBackend.dataCspGetAccount(teamid, accountId, dataToken).then(function (account) {\n\n          // index the customer array\n          var customerIndex = customers.buildIndex('CustomerTenantId');\n\n          // query the required data\n          var pendingPeriodRequests = [];\n          periods.forEach(function (period) {\n\n            var result = [];\n\n            // now load the reports for the last 12 months\n            var pendingPeriodCall = $eaBackend.dataCspGetCustomersSpendingsInAccount(teamid, accountId, period.ReportId, dataToken).then(function (spendings) {\n\n              spendings.forEach(function (spending) {\n\n                var customerReport = new $acDataSourceClasses.ResellerCustomerEntryClass();\n                customerReport.ReportId = spending.ReportId;\n                customerReport.ReportMonth = spending.ReportId.split('-')[1];\n                customerReport.ReportYear = spending.ReportId.split('-')[0];\n                customerReport.ReportLastSync = null;\n                customerReport.ReportCurrency = account.Currency;\n                customerReport.ReportCurrencySymbol = account.Currency && account.Currency === 'EUR' ? '€' : account.Currency;\n                customerReport.AccountId = spending.AccountId;\n\n                var customer = customerIndex[spending.MicrosoftCustomerId];\n                if (customer) {\n                  customerReport.CustomerId = customer.CustomerId;\n                  customerReport.CustomerCompany = customer.CustomerCompany;\n                  customerReport.CustomerContact = customer.CustomerContact;\n                  customerReport.CustomerDomain = customer.CustomerDomain;\n                  customerReport.CustomerState = customer.CustomerState;\n                  customerReport.CustomerTenantId = customer.CustomerTenantId;\n                  customerReport.ActivatedAt = customer.ActivatedAt;\n                  customerReport.CustomerNewCommerce = customer.newCommerce || false;\n                }\n\n                customerReport.Costs = spending.Costs;\n\n                // override the billing cycle\n                if ($eaBackendDataModeSelector.isBillingCycleEnabled() && $eaBackendDataModeSelector.getBillingCycleDay() !== 1) {\n                  customerReport.Costs = spending.CostsBC ? spending.CostsBC : 0.0;\n                }\n\n                customerReport.EntitlementId = spending.EntitlementId;\n                customerReport.EntitlementName = spending.EntitlementName;\n                customerReport.EntitlementSymbol = \"servicetype azure_app_service\";\n\n                result.push(customerReport);\n              });\n\n              return $q.when(result);\n            });\n\n            pendingPeriodRequests.push(pendingPeriodCall);\n          });\n\n          return $q.all(pendingPeriodRequests).then(function (results) {\n            var resultList = [];\n            results.forEach(function (result) {\n              resultList.push.apply(resultList, result);\n            });\n\n            return $q.when(resultList);\n          });\n        });\n      });\n    });\n  }\n\n  function loadCustomerReportItemsV2(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n\n    // get the accountid\n    var accountId = contract.split(':')[1];\n\n    // load the data\n    return $acDataSourceHelperCspGenericSummary.loadGenericView(teamid, accountId, 'meter', 'csp', dataToken, className, currentHashKey, optionalParams);\n  }\n\n  function loadAllCustomerItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var accountId = contract.split(':')[1];\n\n    // load the customers of a reseller\n    return $eaBackend.dataCspGetCustomersInAccount(teamid, accountId, dataToken).then(function(customers) {\n\n      var result = [];\n\n      customers.forEach(function(customer) {\n          var customerReport = new $acDataSourceClasses.ResellerCustomerClass();\n          customerReport.AccountId = accountId;\n          customerReport.CustomerId = customer.microsoftCustomerId;\n          customerReport.CustomerCompany = customer.customerCompany;\n          customerReport.CustomerContact = customer.customerContact;\n          customerReport.CustomerDomain = customer.customerDefaultDomain;\n          customerReport.CustomerState = customer.state;\n          customerReport.CustomerTenantId = customer.customerTenantId;\n          customerReport.CustomerTeamId = customer.customerTeamId ? customer.customerTeamId : customer.microsoftCustomerId;\n          customerReport.CustomerContractId = customer.customerContractId ? customer.customerContractId : customer.customerTenantId;\n          customerReport.CustomerNewCommerce  = customer.newCommerce || false;\n\n          // set the correct activation date\n          if (customer.activatedAt == null ||customer.activatedAt === undefined) {\n            customerReport.ActivatedAt = undefined;\n          } else if (customer.activatedAt.indexOf('1970-') === 0) {\n            customerReport.ActivatedAt = undefined;\n          } else {\n            customerReport.ActivatedAt = customer.activatedAt;\n          }\n\n          result.push(customerReport);\n      });\n\n      // order ersult\n      result.sortOn('CustomerCompany');\n\n      // done\n      return $q.when(result);\n    });\n  }\n\n  // load the available periods\n  function loadAvailablePeriodClasses() {\n\n    var startDate = new Date();\n    if ($eaBackendDataModeSelector.isBillingCycleEnabled()) {\n      startDate = $acTimelineGenerator.addMonth(new Date());\n    }\n    var monthCount = 13;\n\n    var monthList = $acTimelineGenerator.createMonthList(-1 * monthCount, startDate).map(function(month) {\n      return $acDataSourceClasses.PeriodClass({ReportId: month});\n    });\n\n    return $q.when(monthList);\n  }\n\n  // defines all functions for the CSP account model\n  // ###\n\n  // defines all functions for the CSP customer model\n  // ###\n\n  // called from our infrastructure to the define the different\n  // datasources this service handles\n  self.registerDataSources = function(dataSourceManager) {\n\n    // register the dashboard items for the csp portal\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'csp', loadCSPDashboardItems, $acDataSourceHelper.getStoreDashboardItemsCallback(), $acDataSourceHelper.getDeleteDashboardItemsCallback());\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'csp.t2', loadCSPDashboardItemsT2, $acDataSourceHelper.getStoreDashboardItemsCallback(), $acDataSourceHelper.getDeleteDashboardItemsCallback());\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'csp.v2', loadCSPDashboardItemsV2, $acDataSourceHelper.getStoreDashboardItemsCallback(), $acDataSourceHelper.getDeleteDashboardItemsCallback());\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'csp.ea.v2', loadCSPDashboardItemsV2, $acDataSourceHelper.getStoreDashboardItemsCallback(), $acDataSourceHelper.getDeleteDashboardItemsCallback());\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'csp.t2.v2', loadCSPDashboardItemsT2V2, $acDataSourceHelper.getStoreDashboardItemsCallback(), $acDataSourceHelper.getDeleteDashboardItemsCallback());\n\n    // loads the different group options\n    dataSourceManager.registerDataSource('global', 'SpendingGroupOptionClass', 'csp', $acDataSourceSettings.loadStaticDataGenericCallback);\n\n    // spending filter class\n    $acDataSourceHelper.registerDataSourceSpendingFilerClass(dataSourceManager, 'csp');\n\n    // loads the customer index\n    dataSourceManager.registerDataSource('global', 'ResellerCustomerClass', 'csp', loadAllCustomerItems);\n\n    // loads the customer data\n    dataSourceManager.registerDataSource('global', 'ResellerCustomerEntryClass', 'csp', loadCustomerReportItems);\n    dataSourceManager.registerDataSource('global', 'ResellerCustomerEntryClass', 'csp.v2', loadCustomerReportItemsV2);\n    dataSourceManager.registerDataSource('global', 'ResellerCustomerEntryClass', 'csp.ea.v2', loadCustomerReportItemsV2);\n\n\n    // load the available periods\n    dataSourceManager.registerDataSource('global', 'PeriodClass', 'csp', loadAvailablePeriodClasses);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceCspGsi', function($acDataSourceSettings, $acDataSourceHelper, $acDataSourceClasses, $q, $eaBackend, $acTimelineGenerator, $injector, $eaBackendDataModeSelector, $acDataSourceHelperCspGenericSummary) {\n  var self = this;\n\n  function loadCSPDashboardItemsByTemplate(dashboardTemplate) {\n    return $acDataSourceSettings.loadDataFromStaticUrl(dashboardTemplate).then(function(items) {\n      return $q.when(items.map(function(item) { return new $acDataSourceClasses.DashboardItemClass(item); }))\n    });\n  }\n\n  function loadCSPGsiDashboardItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var dashboardTemplate = 'csp_gsi_dashboard_definitions.json';\n    return loadCSPDashboardItemsByTemplate(dashboardTemplate);\n  }\n\n  // load the available periods\n  function loadAvailablePeriodClasses() {\n\n    var monthList = $acTimelineGenerator.createMonthList(-13, $acTimelineGenerator.addMonth(new Date())).map(function(month) {\n      return $acDataSourceClasses.PeriodClass({ReportId: month});\n    });\n\n    return $q.when(monthList);\n  }\n\n  function loadAccountReportItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n\n    // prepare result items\n    var resultItems = [];\n\n    // load gsi settingsd\n    return $eaBackend.dataCspGetGsiSettings(teamid, dataToken).then(function(gsiAccount) {\n\n      // get all acocunts becasue we do not have a contractId\n      return $eaBackend.dataCspGetAccounts(teamid, dataToken).then(function(accounts) {\n\n        return accounts.forEachExecuteAsyncOperationParallel($q, function(account) {\n\n          return $acDataSourceHelperCspGenericSummary.loadGenericView(teamid, account.AccountId, 'v2customer', 'gsi.v1', dataToken, className, currentHashKey, optionalParams).then(function (result) {\n\n            resultItems.appendArray(result.map(function (item) {\n\n              // map in our standard ICON\n              item.CustomerIcon = 'fa-building-o';\n\n              // map in the account information\n              item.AccountName = account.Name;\n              item.AccountCountry = account.Country;\n              item.AccountCurrency = account.Currency;\n              item.AccountExchangeRate = account.ExchangeRate;\n              item.AccountType = account.TierLevel;\n\n              // convert the costs to the right currency\n              item.Costs = item.Costs * item.AccountExchangeRate;\n\n              // adjust the currency symbols\n              item.ReportCurrency = gsiAccount.referenceCurrency;\n              item.ReportCurrencySymbol = gsiAccount.referenceCurrencySymbol;\n\n              // done\n              return item;\n            }));\n          })\n        });\n      }).then(function() {\n        return $q.when(resultItems);\n      })\n    });\n  }\n\n  self.registerDataSources = function(dataSourceManager) {\n\n    // register the dashboard items for the gsi portal\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'gsi.v1', loadCSPGsiDashboardItems);\n\n    // loads the different group options\n    dataSourceManager.registerDataSource('global', 'SpendingGroupOptionClass', 'gsi.v1', $acDataSourceSettings.loadStaticDataGenericCallback);\n\n    // spending filter class\n    $acDataSourceHelper.registerDataSourceSpendingFilerClass(dataSourceManager, 'gsi.v1');\n\n    // load the data\n    dataSourceManager.registerDataSource('global', 'ResellerCustomerEntryClass', 'gsi.v1', loadAccountReportItems);\n\n    // load the available periods\n    dataSourceManager.registerDataSource('global', 'PeriodClass', 'gsi.v1', loadAvailablePeriodClasses);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceTeaming', function($acDataSourceSettings, $acDataSourceClasses, $q, $eaBackend) {\n  var self = this;\n\n  function loadTeamMembership(teamid, contract, dataToken /*, className, currentHashKey, optionalParams */) {\n    return $eaBackend.dataGetTeamProfile(teamid, true, dataToken).then(function(loadedTeamProfile) {\n\n      var models = [];\n\n      if (loadedTeamProfile.Members !== null && loadedTeamProfile.Members !== undefined) {\n        loadedTeamProfile.Members.forEach(function (member) {\n          var memberModel = new $acDataSourceClasses.TeamMembershipEntryClass();\n          memberModel.TeamId = loadedTeamProfile.Id;\n          memberModel.UserId = member.UserId;\n          memberModel.FirstName = member.FirstName;\n          memberModel.LastName = member.LastName;\n          memberModel.Contact = member.Contact;\n          memberModel.LastLogin = member.LastLogin;\n          memberModel.LoginCount = member.Logins;\n          memberModel.Role = member.Role;\n          memberModel.SignUp = member.SignUp;\n          memberModel.SubscriptionPermissions = member.Subscriptions;\n          memberModel.LiveId = member.LiveId;\n          memberModel.Type = member.Type;\n          models.push(memberModel);\n        });\n      }\n\n      return models;\n    });\n  }\n\n  // called from our infrastructure to the define the different\n  // datasources this service handles\n  self.registerDataSources = function(dataSourceManager) {\n\n    // Allows to load the membership\n    dataSourceManager.registerDataSource('global', 'TeamMembershipEntryClass', null, loadTeamMembership);\n\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceRi', function($acDataSourceSettings, $acDataSourceHelper, $acDataSourceClasses, $q, $eaBackend, $eaBackendAzureCachedContentLoader, $acCacheIdentifierGenerator) {\n  var self = this;\n\n  function loadRIDashboardItemsByTemplate(dashboardTemplate) {\n    return $acDataSourceSettings.loadDataFromStaticUrl(dashboardTemplate).then(function(items) {\n      return $q.when(items.map(function(item) { return new $acDataSourceClasses.DashboardItemClass(item); }))\n    });\n  }\n\n  // The RI Dashboard Template loaded\n  function loadRIDashboardItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var dashboardTemplate = 'ri_purchase_dashboard_definitions.json';\n    if (contract === 'RI:Welcome') { dashboardTemplate = 'ri_welcome_dashboard_definitions.json'; }\n    return loadRIDashboardItemsByTemplate(dashboardTemplate);\n  }\n\n  // called from our infrastructure to the define the different\n  // datasources this service handles\n  self.registerDataSources = function(dataSourceManager) {\n\n    // our collection id\n    var collectionId = 'ri.v1';\n\n    // register the dashboard items for the csp portal\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'ri', loadRIDashboardItems);\n\n    // register the data load stuff\n    dataSourceManager.registerDataSource('global', 'RiAnalysisResultItemClass', collectionId, function (teamid, contract, dataToken, className, cacheHash, optionalParams) {\n\n      // generate the cacheIdentifier\n      var cacheIdentifier = $acCacheIdentifierGenerator.buildDailyCacheIdentifier(className);\n      return $eaBackendAzureCachedContentLoader.dataRequestCachedResourceWithRetry(teamid, contract, optionalParams.ResourceInstanceId, cacheIdentifier, dataToken, undefined, false, {cacheIdentifierExtenion: cacheIdentifier, resourceEndpoint: $eaBackend.dataGetRiAnalysisResult, queryoptions:optionalParams.query });\n    });\n\n    dataSourceManager.registerDataSource('global', 'RiAnalysisVirtualMachineItemClass', collectionId, function (teamid, contract, dataToken, className, cacheHash, optionalParams) {\n      return $eaBackendAzureCachedContentLoader.dataRequestCachedResourceWithRetry(teamid, contract, undefined, cacheHash, dataToken, undefined, false, {cacheIdentifierExtenion: cacheHash, resourceEndpoint: function(teamId, contract, resourceInstanceId, cacheIdentifier, dataToken, retry) {\n        return $eaBackend.dataGetRiVirtualMachines(teamId, contract, cacheHash, dataToken, retry);\n      }});\n    });\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$acDataSourceCspResellerManagement', function($acDataSourceSettings, $acDataSourceHelper, $acDataSourceClasses, $q, $eaBackend, $acTimelineGenerator, $injector, $eaBackendDataModeSelector, $acDataSourceHelperCspGenericSummary, $eaBackendAzureCachedContentLoader, rfc4122) {\n  var self = this;\n\n  function loadCSPDashboardItemsByTemplate(dashboardTemplate) {\n    return $acDataSourceSettings.loadDataFromStaticUrl(dashboardTemplate).then(function(items) {\n      return $q.when(items.map(function(item) { return new $acDataSourceClasses.DashboardItemClass(item); }))\n    });\n  }\n\n  function loadCSPResellerDashboardItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n    var dashboardTemplate = 'csp_reseller_dashboard_definitions.json';\n    return loadCSPDashboardItemsByTemplate(dashboardTemplate);\n  }\n\n  // load the available periods\n  function loadAvailablePeriodClasses() {\n\n    var monthList = $acTimelineGenerator.createMonthList(-13, $acTimelineGenerator.addMonth(new Date())).map(function(month) {\n      return $acDataSourceClasses.PeriodClass({ReportId: month});\n    });\n\n    return $q.when(monthList);\n  }\n\n  function loadResellerItems(teamid, contract, dataToken, className, currentHashKey, optionalParams) {\n\n    function resourceLoadRouting(teamid, contractNumber, resourceId, cacheIdentifier, jwtToken, retry) {\n      return $eaBackend.dataGetCspResellerSummary(teamid, resourceId, cacheIdentifier, jwtToken, retry);\n    }\n\n    // prepare result items\n    var resultItems = [];\n\n    // load the current hashes for this report category\n    return $eaBackend.dataGetTeamHashes(teamid, 'ResellerSummary', dataToken).then(function(hashesMap) {\n\n      // ensure we have at least an empty hashmap\n      hashesMap = hashesMap || {};\n\n      // get all periods\n      return loadAvailablePeriodClasses().then(function (periods) {\n\n        return periods.forEachExecuteAsyncOperationParallel($q, function (period) {\n\n          // build the hash key          \n          var cacheHash = hashesMap[period.ReportId] || rfc4122.v4();\n\n          // load the resources\n          return $eaBackendAzureCachedContentLoader.dataRequestCachedResourcesWithRetry(teamid, contract, [{\n            Id: period.ReportId,\n            CacheIdentifier: cacheHash\n          }], dataToken, {\n            resourceEndpoint: resourceLoadRouting\n          }).then(function (loadedSummaryData) {\n\n            if (Array.isArray(loadedSummaryData)) {\n              resultItems.appendArray(loadedSummaryData[0]);\n            }\n          })\n        }).then(function () {\n          return $q.when(resultItems);\n        });\n      });\n    });\n  }\n\n  self.registerDataSources = function(dataSourceManager) {\n\n    // register the dashboard items for the gsi portal\n    dataSourceManager.registerDataSource('global', 'DashboardItemClass', 'reseller.v1', loadCSPResellerDashboardItems);\n\n    // loads the different group options\n    dataSourceManager.registerDataSource('global', 'SpendingGroupOptionClass', 'reseller.v1', $acDataSourceSettings.loadStaticDataGenericCallback);\n\n    // spending filter class\n    $acDataSourceHelper.registerDataSourceSpendingFilerClass(dataSourceManager, 'reseller.v1');\n\n    // load the data\n    dataSourceManager.registerDataSource('global', 'ResellerT2CustomerEntryClass', 'reseller.v1', loadResellerItems);\n\n    // load the available periods\n    dataSourceManager.registerDataSource('global', 'PeriodClass', 'reseller.v1', loadAvailablePeriodClasses);\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaDownload', function() {\n  var self = this;\n\n  // For updates check http://danml.com/download.html\n  self.do = function(data, strFileName, strMimeType) {\n\n    var self = window, // this script is only for browsers anyway...\n      u = 'application/octet-stream', // this default mime also triggers iframe downloads\n      m = strMimeType || u,\n      x = data,\n      D = document,\n      a = D.createElement('a'),\n      z = function(a){return String(a);},\n      B = (self.Blob || self.MozBlob || self.WebKitBlob || z);\n    B=B.call ? B.bind(self) : Blob ;\n    var fn = strFileName || 'download',\n      blob,\n      fr;\n\n    function d2b(u) {\n      var p= u.split(/[:;,]/),\n        t= p[1],\n        dec= p[2] === 'base64' ? atob : decodeURIComponent,\n        bin= dec(p.pop()),\n        mx= bin.length,\n        i= 0,\n        uia= new Uint8Array(mx);\n\n      for(i;i<mx;++i) { uia[i]= bin.charCodeAt(i); }\n\n      return new B([uia], {type: t});\n    }\n\n    function saver(url, winMode){\n\n      if ('download' in a) { //html5 A[download]\n        a.href = url;\n        a.setAttribute('download', fn);\n        a.innerHTML = 'downloading...';\n        D.body.appendChild(a);\n        setTimeout(function() {\n          a.click();\n          D.body.removeChild(a);\n          if(winMode===true){setTimeout(function(){ self.URL.revokeObjectURL(a.href);}, 250 );}\n        }, 66);\n        return true;\n      }\n\n      if(typeof safari !=='undefined' ){ // handle non-a[download] safari as best we can:\n        url='data:'+url.replace(/^data:([\\w\\/\\-\\+]+)/, u);\n        if(!window.open(url)){ // popup blocked, offer direct download:\n          if(window.confirm('Displaying New Document\\n\\nUse Save As... to download, then click back to return to this page.')){ location.href=url; }\n        }\n        return true;\n      }\n\n      //do iframe dataURL download (old ch+FF):\n      var f = D.createElement('iframe');\n      D.body.appendChild(f);\n\n      if(!winMode){ // force a mime that will download:\n        url='data:'+url.replace(/^data:([\\w\\/\\-\\+]+)/, u);\n      }\n      f.src=url;\n      setTimeout(function(){ D.body.removeChild(f); }, 333);\n\n    }//end saver\n\n    if(String(this)==='true'){ //reverse arguments, allowing download.bind(true, 'text/xml', 'export.xml') to act as a callback\n      x=[x, m];\n      m=x[0];\n      x=x[1];\n    }\n\n    //go ahead and download dataURLs right away\n    if(String(x).match(/^data\\:[\\w+\\-]+\\/[\\w+\\-]+[,;]/)){\n      return navigator.msSaveBlob ?  // IE10 can't do a[download], only Blobs:\n        navigator.msSaveBlob(d2b(x), fn) :\n        saver(x) ; // everyone else can save dataURLs un-processed\n    }//end if dataURL passed?\n\n    blob = x instanceof B ?\n      x :\n      new B([x], {type: m}) ;\n\n\n\n\n\n\n    if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\n      return navigator.msSaveBlob(blob, fn);\n    }\n\n    if(self.URL){ // simple fast and modern way using Blob and URL:\n      saver(self.URL.createObjectURL(blob), true);\n    }else{\n      // handle non-Blob()+non-URL browsers:\n      if(typeof blob === 'string' || blob.constructor===z ){\n        try{\n          return saver( 'data:' +  m   + ';base64,'  +  self.btoa(blob)  );\n        }catch(y){\n          return saver( 'data:' +  m   + ',' + encodeURIComponent(blob)  );\n        }\n      }\n\n      // Blob but not URL:\n      fr=new FileReader();\n      fr.onload=function(/*e*/){\n        saver(this.result);\n      };\n      fr.readAsDataURL(blob);\n    }\n    return true;\n  };\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaBlog', function($http, $q) {\n  var self = this;\n\n  self.get = function(maxElements) {\n    maxElements = maxElements || 5;\n\n    return $http.get('https://public-api.wordpress.com/rest/v1/sites/35723366/posts/?pretty=true&order_by=date&category=azure-cost-monitor&number=' + maxElements).then(function(result) {\n      if (result.status === 200 || result.status === 201) {\n        return $q.when(result.data.posts);\n      } else {\n        return $q.reject();\n      }\n    }).catch(function(){\n      return $q.reject();\n    });\n  };\n\n  self.shortenedExcerpt = function(blogEntry, length) {\n\n    // remove elements\n    blogEntry.excerpt = blogEntry.excerpt.removeHeading('<p>');\n    blogEntry.excerpt = blogEntry.excerpt.removeTrailing('\\n');\n    blogEntry.excerpt = blogEntry.excerpt.removeTrailing('</p>');\n    blogEntry.excerpt = blogEntry.excerpt.removeTrailing('[&hellip;]');\n\n    // shorten\n    var shortenText = null;\n    if (blogEntry.excerpt.length < length) {\n      shortenText = blogEntry.excerpt;\n    } else {\n      shortenText = blogEntry.excerpt.substring(0, length);\n    }\n\n    // cut on the last word\n    var lastSpace = shortenText.lastIndexOf(' ');\n    return shortenText.substring(0, lastSpace);\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaCspService', function($q, $eaBackend, $eaSession2, $window, $eaTeamManagement, $eaUserProfile) {\n  var self = this;\n\n  self.enroll = function(currentSession, callbackLocation) {\n\n    // enroll into CSP\n    return $eaBackend.dataCspEnroll('Solution Provider', currentSession.DataToken).then(function() {\n\n      // destroy the session\n      $eaSession2.destroySession();\n\n      // visit the callbackLocation\n      $window.location.href = callbackLocation;\n    });\n\n  };\n\n  self.loadProfiles = function(currentSession) {\n    return $eaUserProfile.load(currentSession.DataToken, true).then(function(userProfile) {\n      return $eaTeamManagement.getTeamProfilesByRole(userProfile, 'admin', false, currentSession.DataToken).then(function(teams) {\n\n        // filter\n        var cspTeams = teams.filter(function(team) {\n          return (team.CloudSolutionProvider === true);\n        });\n\n        // check\n        return $q.when(cspTeams);\n      });\n    });\n  };\n\n  self.loadProfileById = function(cspProfileId, currentSession) {\n    return $eaTeamManagement.getTeamProfileById(cspProfileId, false, currentSession.DataToken);\n  };\n\n  self.loadAccounts = function(cspTeamProfile, currentSession) {\n    return $eaBackend.dataCspGetAccounts(cspTeamProfile.Id, currentSession.DataToken);\n  };\n\n  self.loadAccount = function(cspTeamProfile, accountId, currentSession) {\n    return $eaBackend.dataCspGetAccount(cspTeamProfile.Id, accountId, currentSession.DataToken);\n  };\n\n  self.registerAccount = function(cspTeamProfile, currentSession, name, clientId, clientSecret, domain, billingDay, syncCustomers, autoActivateCustomers) {\n    return $eaBackend.dataCspRegisterAccount(cspTeamProfile.Id, name, clientId, clientSecret, domain, billingDay, syncCustomers, autoActivateCustomers, currentSession.DataToken);\n  };\n\n  self.registerAccountT2 = function(cspTeamProfile, currentSession, name, currency, country, billingDay) {\n    return $eaBackend.dataCspRegisterAccountT2(cspTeamProfile.Id, name, currency, country, billingDay, currentSession.DataToken);\n  };\n\n  self.registerAccountEA = function(cspTeamProfile, currentSession, name, currency, token, cmapping) {\n    return $eaBackend.dataCspRegisterAccountEA(cspTeamProfile.Id, name, currency, token, cmapping, currentSession.DataToken);\n  };\n\n  self.registerAccountV1 = function(cspTeamProfile, currentSession, name, currency) {\n    return $eaBackend.dataCspRegisterAccountV1(cspTeamProfile.Id, name, currency, currentSession.DataToken);\n  };\n\n  self.registerAccountDemo = function(cspTeamProfile, contractType, cmapping, currentSession) {\n    var name = 'Demo Account';\n    if (contractType === 'AWS') {\n      name = 'Demo Account (AWS)';\n    }\n\n    return $eaBackend.dataCspRegisterAccountDemo(cspTeamProfile.Id, name, contractType, 'EUR', cmapping, currentSession.DataToken);\n  };\n\n  self.updateAccount = function(cspTeamProfile, accountModel, currentSession) {\n    return $eaBackend.dataCspUpdateAccount(cspTeamProfile.Id, accountModel.AccountId, accountModel.Name, accountModel.ClientId, accountModel.ClientSecret, accountModel.Domain, accountModel.BillingDay, currentSession.DataToken);\n  };\n\n  self.deleteAccount = function(cspTeamProfile, accountModel, currentSession) {\n    return $eaBackend.dataCspDeleteAccount(cspTeamProfile.Id, accountModel.AccountId, currentSession.DataToken);\n  };\n\n  self.getCustomers = function(cspTeamProfile, accountModel, currentSession) {\n    return $eaBackend.dataCspGetCustomersInAccount(cspTeamProfile.Id, accountModel.AccountId, currentSession.DataToken);\n  };\n\n  self.getActiveCustomers = function(cspTeamProfile, accountModel, currentSession) {\n    return self.getCustomers(cspTeamProfile, accountModel, currentSession).then(function(customers) {\n      return customers.filter(function(c) { return c.State === 'active' || c.state === 'active'});\n    });\n  };\n\n  self.activateCustomer = function(cspTeamId, cspAccountId, cspCustomerId, currentSession) {\n    // activate the account\n    return $eaBackend.dataCspActiveCustomersInAccount(cspTeamId, cspAccountId, cspCustomerId, currentSession.DataToken);\n  };\n\n  self.deActivateCustomer = function(cspTeamId, cspAccountId, cspCustomerId, currentSession) {\n    // de-activate the account\n    return $eaBackend.dataCspDeActiveCustomersInAccount(cspTeamId, cspAccountId, cspCustomerId, currentSession.DataToken);\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaChartConfig', [ function() {\n  var self = this;\n\n  self.createGaugeConfig = function() {\n    return {\n      chart: {\n        type: 'solidgauge',\n        renderTo: null\n      },\n\n      exporting: {\n        enabled: false\n      },\n      credits: {\n        enabled: false\n      },\n\n      title: null,\n\n      pane: {\n        center: ['50%', '80%'],\n        size: '140%',\n        startAngle: -90,\n        endAngle: 90,\n        background: {\n        backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE',\n          innerRadius: '60%',\n          outerRadius: '100%',\n          shape: 'arc'\n        }\n      },\n\n      tooltip: {\n        enabled: false\n      },\n\n      // the value axis\n      yAxis: {\n        min: 0,\n        max: 100,\n        stops: [],\n        lineWidth: 0,\n        minorTickInterval: null,\n        tickPixelInterval: 400,\n        tickWidth: 0,\n        labels: {\n          y: 16\n        }\n      },\n\n      plotOptions: {\n        solidgauge: {\n          dataLabels: {\n            y: 5,\n              borderWidth: 0,\n              useHTML: true\n          }\n        }\n      },\n\n      series: []\n    };\n  };\n\n  self.createStackedBarConfig = function() {\n    return {\n      chart: {\n        renderTo: null,\n        backgroundColor: null\n      },\n      exporting: {\n        enabled: false\n      },\n      credits: {\n        enabled: false\n      },\n      title: {\n        text: null\n      },\n      xAxis: {\n        categories: []\n      },\n      yAxis: {\n        min: 0,\n        title: {\n          text: ''\n        },\n        labels: {\n          enabled: true\n        },\n        stackLabels: {\n          enabled: false\n        }\n      },\n      legend: {\n        enabled: false\n      },\n      tooltip: {\n        enabled: false\n      },\n      plotOptions: {\n        column: {\n          stacking: 'normal',\n            dataLabels: {\n            enabled: false\n          }\n        },\n        spline: {\n          color: '#F69D4D',\n            dashStyle: 'LongDash'\n        }\n      },\n      series: []\n    };\n  };\n\n  self.createPieConfig = function() {\n    return {\n      chart: {\n        plotBackgroundColor: null,\n        plotBorderWidth: null,\n        plotShadow: false,\n        type: 'pie'\n      },\n\n      exporting: {\n        enabled: false\n      },\n\n      credits: {\n        enabled: false\n      },\n\n      title: null,\n\n      tooltip: {\n        pointFormat: null\n      },\n\n      plotOptions: {\n        pie: {\n          allowPointSelect: true,\n          cursor: 'pointer',\n          dataLabels: {\n            enabled: false\n          },\n          showInLegend: false\n        }\n      },\n\n      series: []\n    };\n  };\n\n  self.createAreaConfig = function() {\n    return {\n      chart: {\n        plotBackgroundColor: null,\n        plotBorderWidth: null,\n        plotShadow: false,\n        type: 'area'\n      },\n\n      exporting: {\n        enabled: false\n      },\n\n      credits: {\n        enabled: false\n      },\n\n      legend: {\n        enabled: false\n      },\n\n      yAxis: {\n        title: {\n          text: ''\n        },\n        labels: {\n          enabled: false\n        }\n      },\n\n      xAxis: {\n        labels: {\n          enabled: false\n        }\n      },\n\n      title: null,\n\n      tooltip: {\n        pointFormat: null\n      },\n\n      plotOptions: {\n        area: {\n          color: '#1DABEC',\n          marker: {\n            enabled: false\n          }\n        }\n      },\n\n      series: []\n    };\n  };\n\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$ccDemoModeService', function($eaBackendDataModeSelector, $eaSession2, $eaBackend, $state, $stateParams, $busy) {\n  var self = this;\n\n  self.enableDemoMode = function(currentSession, options) {\n\n    // register the demo contract\n    $busy.during($eaBackend.dataDemoRegisterContract($stateParams.teamid, currentSession.DataToken)).then(function(contractId) {\n\n      // set the options\n      options = options || {};\n\n      // add our options\n      options.team = $stateParams.teamid;\n      options.enrollment = contractId;\n\n      // just redirect to sign in\n      $state.go('public.signin', options);\n    });\n  };\n\n});\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalUpgradePlanCtrl', function($scope, $modalInstance, team, plan, description) {\n\n  $scope.team = team;\n  $scope.plan = plan;\n  $scope.description = description;\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalObjectPickerCtrl', function($scope, $modalInstance, $controller, $q, ExistingObjects, SelectedObjects, Metadata) {\n\n  $scope.title = Metadata.Title;\n  $scope.description = Metadata.Description;\n\n  $scope.existingObjects = ExistingObjects;\n  $scope.selectedObjects = SelectedObjects;\n\n  $scope.ok = function () {\n    if (Metadata.SingleSelect) {\n      $modalInstance.close($scope.selectedObjects[0]);\n    } else {\n      $modalInstance.close($scope.selectedObjects);\n    }\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n\n  $scope.getDisplayName = function(model) {\n    if (Metadata && Metadata.GetDisplayName && angular.isFunction(Metadata.GetDisplayName)) {\n      return Metadata.GetDisplayName(model);\n    } else {\n      return model.toString();\n    }\n  };\n\n  $scope.hasDetailsString = function(model) {\n    return (Metadata && Metadata.GetDetailsString && angular.isFunction(Metadata.GetDetailsString));\n  };\n\n  $scope.getDetailsString = function(model) {\n    if ($scope.hasDetailsString(model)) {\n      return Metadata.GetDetailsString(model);\n    } else {\n      return undefined;\n    }\n  };\n\n  $scope.hasFontawesomeIcon = function(model) {\n    var imageUrl = $scope.getImageUrl(model);\n    if (imageUrl && imageUrl.indexOf('fa') === 0) {\n      return true;\n    } else {\n      return false;\n    }\n  };\n\n  $scope.getImageUrl = function(model) {\n    if (Metadata && Metadata.GetImageUrl && angular.isFunction(Metadata.GetImageUrl)) {\n      return Metadata.GetImageUrl(model);\n    } else if (Metadata && Metadata.GetImageUrl && angular.isString(Metadata.GetImageUrl)) {\n      return Metadata.GetImageUrl;\n    } else {\n      return undefined;\n    }\n  };\n\n  $scope.isSelected = function(model) {\n    return ($scope.selectedObjects.indexOf(model) !== -1);\n  };\n\n  $scope.selectObject = function(model) {\n    if (Metadata.SingleSelect) {\n      $scope.selectedObjects = [model];\n    } else {\n      $scope.selectedObjects.push(model);\n    }\n  };\n\n  $scope.deselectObject = function(model) {\n    if (!Metadata.SingleSelect) {\n      var idx = $scope.selectedObjects.indexOf(model);\n      $scope.selectedObjects.splice(idx, 1);\n    }\n  };\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalSingleLineBoxCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openSingleLineBox = function(title, description, value) {\n\n    var modalInstance = $modal.open({\n      templateUrl: 'views/modals/ac-single-line-box.html',\n      controller: 'ModalSingleLineBoxCtrl',\n      resolve: {\n        Metadata: function() { return { Title: title, Description: description, Value: value }; }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalSingleLineBoxCtrl', function($scope, $modalInstance, $controller, Metadata) {\n\n  $scope.title = Metadata.Title;\n  $scope.description = Metadata.Description;\n  $scope.line = Metadata.Line;\n  $scope.value = Metadata.Value;\n\n  $scope.ok = function () {\n    $modalInstance.close($scope.value);\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalMessageBoxCtrlMixin', [ '$scope', '$modal', function($scope, $modal) {\n\n  $scope.openMessagegeBox = function(title, description) {\n\n    var modalInstance = $modal.open({\n      templateUrl: 'views/modals/cc-message-box.html',\n      controller: 'ModalMessageBoxCtrl',\n      resolve: {\n        Metadata: function() { return { Title: title, Description: description }; }\n      }\n    });\n\n    // returns a promise\n    return modalInstance.result;\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').controller('ModalMessageBoxCtrl', function($scope, $modalInstance, $controller, Metadata) {\n\n  $scope.title = Metadata.Title;\n  $scope.description = Metadata.Description;\n\n  $scope.ok = function () {\n    $modalInstance.close();\n  };\n\n  $scope.cancel = function () {\n    $modalInstance.dismiss('cancel');\n  };\n\n});\n\n\n\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaBilling', [ '$q', '$eaBackend', function($q, $eaBackend) {\n  var self = this;\n\n  var planValueOrder = {\n    'basic':        100,\n    'startup':      200,\n    'professional': 300,\n    'enterprise':   400,\n    'csp':          500\n  };\n\n  var planDisplayText = {\n    'csp': 'Cloud Solutions Provider'\n  }\n\n\n  // Loads the billing information\n  self.loadBillingInformation = function(session) {\n      return $eaBackend.dataGetBillingInformation(session.DataToken);\n  };\n\n  // Checks if we are in trial mode or not\n  self.isInTrial = function(billingOrTeamInformation) {\n\n    // check if we have a trial ends date\n    if (!billingOrTeamInformation.TrialEnds || billingOrTeamInformation.TrialEnds === '') {\n      return false;\n    }\n\n    // compare the trialends date with the current date\n    var trialEndsDate = new Date(billingOrTeamInformation.TrialEnds);\n    var now = new Date();\n    return (trialEndsDate > now);\n  };\n\n  // checks if we have a value in the TrialsEnds property which indicates that\n  // the user ever started a trial\n  // ### TODO Change This to an other property###\n  self.hasEverStartedTrial = function(billingOrTeamInformation) {\n    return (billingOrTeamInformation.TrialEnds !== undefined && billingOrTeamInformation.TrialEnds !== null);\n  };\n\n  // calculates the actual retention period for the billing settings\n  self.calculateRetentionPeriod = function(billingOrTeamInformation) {\n    if (billingOrTeamInformation.CurrentPlan === 'basic' || self.isInTrial(billingOrTeamInformation)) {\n      return 0;\n    } else if (billingOrTeamInformation.Period) {\n      return billingOrTeamInformation.Period;\n    } else {\n      return 12;\n    }\n  };\n\n  // calcualtes the current plan price\n  self.calculateCurrentPlanPrice = function(billingOrTeamInformation) {\n    var billing = (typeof billingOrTeamInformation === 'string') ? { CurrentPlan: billingOrTeamInformation } : billingOrTeamInformation;\n\n    if (self.isInTrial(billing)) {\n      return 0.00;\n    } else if (billing.CurrentPlan === 'basic') {\n      return 0.00;\n    } else if (billing.CurrentPlan === 'startup') {\n      return 29.00;\n    } else if (billing.CurrentPlan === 'professional') {\n      return 79.00;\n    } else {\n      return 199.00;\n    }\n  };\n\n  self.isPlanHigherThanPlan = function(planA, planB) {\n    var valuePlanA = planValueOrder[planA] || 0;\n    var valuePlanB = planValueOrder[planB] || 0;\n\n    return valuePlanA > valuePlanB;\n  };\n\n  self.hasRequiredPlan = function(currentPlan, requiredPlan) {\n    if (currentPlan === requiredPlan) {\n      return true;\n    } else {\n      return self.isPlanHigherThanPlan(currentPlan, requiredPlan);\n    }\n  };\n\n  self.getDisplayTextForPlan = function(plan) {\n    if (planDisplayText[plan]) {\n      return planDisplayText[plan];\n    } else {\n      return plan.charAt(0).toUpperCase() + plan.slice(1);\n    }\n  };\n\n  // allows to purchase a subscription\n  self.purchase = function(plan, dataToken) {\n    return $eaBackend.dataPurchase(plan, dataToken);\n  };\n\n  // checks if the calling user as the account owner for this team\n  self.isAccountOwner = function(userId, teamFromProfile) {\n    return (teamFromProfile.Id === 'personal' || userId === teamFromProfile.AccountOwner);\n  };\n}]);\n","'use strict';\n\nangular.module('azureCostsFeApp').service('$eaLiveId', ['$http', function($http) {\n  var self = this;\n\n  self.loadProfile = function(accesstoken) {\n    return $http({\n      method: 'GET',\n      url: 'https://apis.live.net/v5.0/me?access_token=' + accesstoken,\n      transformRequest: [function(data, headersGetter){\n        var headers = headersGetter();\n        delete headers.Authorization;\n        delete headers.authorization;\n\n        // We need to return the data for the next in\n        // transformation chain\n        return data;\n      }].concat($http.defaults.transformRequest)}).then(function(profile) {\n      return profile.data;\n    });\n  };\n\n}]);\n"]}