{"version":3,"sources":["/source/modules/infrastructure/notification/module_create.ts","/source/modules/infrastructure/breadcrumb/module_create.ts","/source/modules/infrastructure/popup/module_create.ts","/source/modules/infrastructure/menu/module_create.ts","/source/modules/infrastructure/scrollspy/module_create.ts","/source/modules/infrastructure/module_create.ts","/source/modules/infrastructure/menu/providers/menuServiceProvider.ts","/source/modules/infrastructure/table/services/tablePopupService.ts","/source/modules/infrastructure/factories/windowEventService.ts","/source/modules/infrastructure/notification/factories/notificationService.ts","/source/modules/infrastructure/popup/factories/popupService.ts","/source/modules/infrastructure/notification/controllers/messageController.ts","/source/modules/infrastructure/notification/controllers/notificationController.ts","/source/modules/infrastructure/table/controllers/tablePopupCtrl.ts","/source/modules/infrastructure/breadcrumb/directives/breadcrumb.ts","/source/modules/infrastructure/carousel/directives/carouselDirective.ts","/source/modules/infrastructure/carousel/directives/carouselItemDirective.ts","/source/modules/infrastructure/carousel/directives/imageCarouselDirective.ts","/source/modules/infrastructure/carousel/directives/imageCarouselItemDirective.ts","/source/modules/infrastructure/menu/directives/menuDirective.ts","/source/modules/infrastructure/menusquare/directives/menusquareDirective.ts","/source/modules/infrastructure/menusquare/directives/menusquareItemDirective.ts","/source/modules/infrastructure/notification/directives/notificationDirective.ts","/source/modules/infrastructure/progress/directives/progressBarDirective.ts","/source/modules/infrastructure/progress/directives/progressDirective.ts","/source/modules/infrastructure/progress/directives/progressLabel.ts","/source/modules/infrastructure/scrollspy/directives/crScrollSpy.ts","/source/modules/infrastructure/scrollspy/directives/crSpy.ts","/source/modules/infrastructure/table/directives/crAction.ts","/source/modules/infrastructure/table/directives/crColImage.ts","/source/modules/infrastructure/table/directives/crColPos.ts","/source/modules/infrastructure/table/directives/crColStyle.ts","/source/modules/infrastructure/table/directives/crColText.ts","/source/modules/infrastructure/table/directives/crColTranslation.ts","/source/modules/infrastructure/table/directives/crMasterSlaveTableDirective.ts","/source/modules/infrastructure/table/directives/crPaging.ts","/source/modules/infrastructure/table/directives/crResultRow.ts","/source/modules/infrastructure/table/directives/crRow.ts","/source/modules/infrastructure/table/directives/crTableDirective.ts","/source/modules/infrastructure/autofocus/autofocus.ts","/source/modules/infrastructure/carousel/module.ts","/source/modules/infrastructure/notification/contracts/contracts.ts","/source/modules/infrastructure/popup/contracts/contracts.ts","/source/modules/infrastructure/menu/module.ts","/source/modules/infrastructure/notification/module.ts","/source/modules/infrastructure/scrollspy/module.ts","/source/modules/infrastructure/breadcrumb/contracts/contracts.ts","infrastructure-tmpl.js"],"names":["cr","cr.infrastructure","cr.infrastructure.notification","cr.infrastructure.breadcrumb","cr.infrastructure.popup","cr.infrastructure.menu","angular","module","cr.infrastructure.MenuService","cr.infrastructure.MenuService.constructor","cr.infrastructure.MenuServiceFactory","cr.infrastructure.MenuServiceFactory.constructor","cr.table","cr.table.tablePopupService","cr.table.tablePopupService.constructor","cr.table.tablePopupService.SelectEntity","cr.infrastructure.windowEventService","cr.infrastructure.windowEventService.constructor","cr.infrastructure.windowEventService.addHandler","cr.infrastructure.windowEventService.getEvent","cr.infrastructure.windowEventService.getTarget","cr.infrastructure.windowEventService.preventDefault","cr.infrastructure.windowEventService.removeHandler","cr.infrastructure.windowEventService.stopPropagation","cr.infrastructure.notification.notificationService","cr.infrastructure.notification.notificationService.constructor","cr.infrastructure.notification.notificationService.editText","context","params","title","value","val","message","buttons","cr.infrastructure.notification.notificationService.showMessage","cr.infrastructure.popup.popupService","cr.infrastructure.popup.popupService.constructor","window","location","reload","cr.infrastructure.notification.messageCtrl","cr.infrastructure.notification.messageCtrl.constructor","cr.infrastructure.notification.notificationCtrl","cr.infrastructure.notification.notificationCtrl.constructor","cr.infrastructure.notification.notificationCtrl.close","cr.infrastructure.notification.notificationCtrl.getNotificationClass","cr.table.tablePopupCtrl","cr.table.tablePopupCtrl.constructor","cr.infrastructure.breadcrumb.isAOlderThanB","cr.infrastructure.breadcrumb.parseStateRef","cr.infrastructure.breadcrumb.$Breadcrumb","extend","$$options","options","$lastViewScope","$rootScope","$on","event","isAOlderThanB","targetScope","$id","$$parentState","state","parent","exec","name","isObjectParent","$$addStateInChain","chain","stateRef","conf","parentParams","ref","parseStateRef","force","skip","i","l","length","$state","get","ncyBreadcrumb","includeAbstract","paramExpr","$eval","ncyBreadcrumbLink","href","$stateParams","unshift","$$breadcrumbParentState","isFunction","parentStateRef","getTemplate","templates","templateUrl","getTemplateUrl","getStatesChain","exitOnFirst","$current","self","prefixStateName","getLastStep","this","undefined","$getLastViewScope","cr.infrastructure.breadcrumb.BreadcrumbDirective","cr.infrastructure.breadcrumb.BreadcrumbDirective.postLink","deregisterWatchers","labelWatchers","viewScope","$breadcrumb","scope","steps","forEach","step","label","parseLabel","$interpolate","ncyBreadcrumbLabel","registerWatchers","renderBreadcrumb","cr.infrastructure.breadcrumb.BreadcrumbLastDirective","template","cElement","attr","cAttrs","$attr","ncyBreadcrumbLast","html","post","postLink","lastStep","renderLabel","cr.infrastructure.breadcrumb.BreadcrumbTextDirective","ncyBreadcrumbText","separator","ncyBreadcrumbTextSeparator","getExpression","interpolationFunction","expression","watcher","$watch","newValue","oldValue","labelWatcherArray","push","combinedLabels","registerWatchersText","ncyBreadcrumbChain","join","expressions","parts","part","exp","deregisterWatch","cr.infrastructure.carousel","cr.infrastructure.carousel.carouselDirectiveFactory","restrict","replace","duration","transclude","controller","$interval","$scope","next","item","isActive","position","id","animate","items","$progress","$","addTab","cr.infrastructure.carousel.carouselItemDirectiveFactory","require","quote","link","element","attrs","crCarousel","cr.infrastructure.carousel.imageCarouselDirectiveFactory","console","log","cr.infrastructure.carousel.imageCarouselItemDirectiveFactory","image","crImageCarousel","mQuery","jQuery","menuService","getItems","panels","$compile","contents","navigate","go","mmenu","trigger","on","detach","prependTo","document","e","preventDefault","action","hasClass","$this","$target","data","$menu","closest","addClass","add","off","mouseenter","nmbr","clearTimeout","mouseleave","setTimeout","removeClass","crMenusquare","actionClass","animClass","sqAnimDirection","sqDescription","sqHrefTarget","find","handleClick","$event","sqRoute","sqRouteParams","fromJson","sqAction","stopPropagation","Name","cr.infrastructure.notification.notificationDirectiveFactory","prData","prClass","prLabel","crProgress","prHeight","prSize","height","app","directive","$window","$location","$anchorScroll","spies","spyClick","$el","offset","scrollTop","top","addSpy","spyObj","spy","_","findWhere","elem","highLight","newSpies","scroll","lastSpy","scrollY","$timeout","affix","performAction","type","toLowerCase","onRowAction","row","url","actions","column","strActions","split","strAction","tokens","class","indexOf","col","toRet","Bold","Colspan","Italic","Alignment","UrlColumn","el","Settings","Target","append","Filter","$filter","Arg","cr.infrastructure.masterSlaveTableCtrl","cr.infrastructure.masterSlaveTableCtrl.constructor","iAttrs","crReplace","Error","cr.infrastructure.searchColumns","cr.infrastructure.buildColumns","oCol","weight","isNaN","parseFloat","Weight","isFinite","parseInt","Visible","width","columns","visibleSlaves","GroupDisplayName","curGroup","groups","clearInterval","interval","setScopeValues","validateScopeValues","pageCount","internalAction","page","addPrev","disabled","prevPage","addNext","nextPage","addRange","start","finish","addDots","addFirst","addLast","prev","build","pageSize","total","dots","hideIfEmpty","ulClass","activeClass","adjacent","compact","showPrevNext","pagingAction","$watchCollection","iElem","iAttr","crTable","render","render.isBeginOfAColumnGroup","childScopes","oldVal","newVal","pre","rowAction","isBeginOfAColumnGroup","columnNumber","groupColumnNumbers","index","each","group","watchRow","cr.infrastructure.tableCtrl","cr.infrastructure.tableCtrl.constructor","memo","num","cr.infrastructure.tableCtrl.showSelect","cr.infrastructure.tableCtrl.filteredColumns","isDefined","filter","is","first","focus","cr.infrastructure.notification.notificationType","cr.infrastructure.notification.notification","cr.infrastructure.notification.notification.constructor","config","menuServiceProvider","item2","item4","icon","panel","imageUrl","subItems","item3","err","run","$templateCache","put"],"mappings":"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","file":"infrastructure.js","sourcesContent":["module cr.infrastructure.notification {\r\n angular.module(\"cr.infrastructure.notification\", ['ui.bootstrap','cr.translation']);\r\n}\r\n","\r\nmodule cr.infrastructure.breadcrumb\r\n{\r\n breadcrumbModule=angular.module(\"cr.infrastructure.breadcrumb\", ['ui.router']);\r\n}\r\n","\r\nmodule cr.infrastructure.popup\r\n{\r\n popupModule = angular.module(\"cr.infrastructure.popup\", []);\r\n}\r\n\r\n\r\n\r\n","\r\nmodule cr.infrastructure.menu\r\n{\r\n angular.module(\"cr.infrastructure.menu\", ['ui.router']);\r\n}\r\n","\r\nangular.module(\"cr.infrastructure.scrollspy\", ['cr.translation']);\r\n","/// \r\n// load sub modules first\r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nangular.module(\"cr.infrastructure\", [\"cr.common\", \"cr.translation\",\r\n \"cr.infrastructure.notification\",\r\n \"cr.infrastructure.breadcrumb\",\r\n \"cr.infrastructure.popup\",\r\n \"cr.infrastructure.menu\",\r\n \"cr.infrastructure.scrollspy\",\r\n \"ui.router\"]);\r\n\r\n","module cr.infrastructure {\r\n\r\n class MenuService implements IMenuService {\r\n constructor(private menuItems:Array) {\r\n }\r\n\r\n getItems = ():Array => {\r\n return this.menuItems;\r\n }\r\n }\r\n\r\n class MenuServiceFactory implements IMenuServiceProvider {\r\n menuItems:Array = [];\r\n\r\n config = (items:Array) => {\r\n angular.forEach(items, (item:IMenuItem) => {\r\n item.$isRoot = true;\r\n });\r\n\r\n this.menuItems = items;\r\n };\r\n\r\n $get = () => {\r\n return new MenuService(this.menuItems);\r\n }\r\n }\r\n\r\n angular.module('cr.infrastructure.menu').provider('menuService', new MenuServiceFactory());\r\n}\r\n","module cr.table\r\n{\r\n class tablePopupService\r\n {\r\n static $inject = ['$q','$modal', '$http'];\r\n\r\n SelectEntity(title:string,entities:Array,columns:Array,params?)\r\n {\r\n //console.log(\"params: \"+params);\r\n //console.log(\"ctx here: \"+(params ? (params.context ? params.context : \"Default\") : \"Default\"));\r\n\r\n return this.$modal.open({\r\n controller: 'tablePopupCtrl',\r\n controllerAs: 'ctrl',\r\n resolve: {\r\n popupData: () => {\r\n return {\r\n title: title,\r\n Rows:entities,\r\n Columns:columns,\r\n Filter: ()=>entities,\r\n context: params ? (params.context ? params.context : \"Default\") : \"Default\"\r\n }\r\n }\r\n },\r\n templateUrl: 'modules/infrastructure/table/templates/tablepopup.html',\r\n show: true\r\n }).result;\r\n }\r\n\r\n constructor(private $q: angular.IQService, private $modal, private $http) {\r\n\r\n }\r\n }\r\n\r\n angular.module('cr.infrastructure').service('tablePopupService', tablePopupService);\r\n}\r\n","\r\nmodule cr.infrastructure {\r\n\r\n class windowEventService implements cr.infrastructure.IWindowEventService {\r\n constructor(private $window:any) {\r\n }\r\n\r\n addHandler(type, handler):void {\r\n if (this.$window.addEventListener) {\r\n this.$window.addEventListener(type, handler, false);\r\n } else if (this.$window.attachEvent) {\r\n this.$window.attachEvent(\"on\" + type, handler);\r\n } else {\r\n this.$window[\"on\" + type] = handler;\r\n }\r\n }\r\n\r\n getEvent(event):any {\r\n return event ? event : window.event;\r\n }\r\n\r\n getTarget(event):any {\r\n return event.target || event.srcElement;\r\n }\r\n\r\n preventDefault(event):void {\r\n if (event.preventDefault) {\r\n event.preventDefault();\r\n } else {\r\n event.returnValue = false;\r\n }\r\n }\r\n\r\n removeHandler(type, handler):void {\r\n if (this.$window.removeEventListener) {\r\n this.$window.removeEventListener(type, handler, false);\r\n } else if (this.$window.detachEvent) {\r\n this.$window.detachEvent(\"on\" + type, handler);\r\n } else {\r\n this.$window[\"on\" + type] = null;\r\n }\r\n }\r\n\r\n stopPropagation(event):void {\r\n if (event.stopPropagation) {\r\n event.stopPropagation();\r\n } else {\r\n event.cancelBubble = true;\r\n }\r\n }\r\n }\r\n\r\n // Module registrations.\r\n angular.module(\"cr.infrastructure\").factory('windowEventService',\r\n ['$window', ($window) => new windowEventService($window)]);\r\n}\r\n","module cr.infrastructure.notification \r\n{\r\n class notificationService implements INotificationService {\r\n //currentId:number=0;\r\n //_notifications:Array=[];\r\n\r\n constructor(private $translateService: cr.translation.ITranslationService ,private $location: angular.ILocationService, private log: angular.ILogService,private $timeout: angular.ITimeoutService,private $q: angular.IQService,private $modal)\r\n {\r\n }\r\n\r\n editText(message:string,title?:string,val?:string,params?:any)\r\n {\r\n var toRet=this.$q.defer();\r\n\r\n console.log(\"edit text: \"+val);\r\n\r\n var strButtons=\"*OK|CANCEL\";\r\n\r\n var buttons=[];\r\n\r\n var buttonTokens=strButtons.split('|');\r\n var i=0;\r\n while (i {\r\n toRet.resolve(buttonName);\r\n },(error:string)=>{\r\n toRet.reject(error);\r\n //toRet.resolve(\"CANCEL\");\r\n });\r\n\r\n return toRet.promise;\r\n\r\n }\r\n\r\n showMessage(message:string,title?:string,strButtons?:string,params?:any): angular.IPromise\r\n {\r\n var toRet=this.$q.defer();\r\n\r\n console.log(\"CTX : \"+(params?(params.context?params.context:\"Default\"):\"Default\"));\r\n\r\n if (!strButtons) strButtons=\"*OK|CANCEL\";\r\n\r\n var buttons=[];\r\n\r\n var buttonTokens=strButtons.split('|');\r\n var i=0;\r\n while (i {\r\n toRet.resolve(buttonName);\r\n },(error:string)=>{\r\n toRet.resolve(\"CANCEL\");\r\n });\r\n\r\n return toRet.promise;\r\n }\r\n\r\n addNotification=(type:notificationType,message:string,params?:any)=>\r\n {\r\n// this.log.log(message);\r\n\r\n var ctx=(params?(params.context?params.context:\"Default\"):\"Default\");\r\n var transService=this.$translateService.getTranslation(ctx,null);\r\n var transMessage= transService.GetCondStringValue(message,params);\r\n\r\n this.log.log(message+\" - \"+transMessage+\" [\"+type+\"]\");\r\n\r\n //console.log(\"alert: \"+message);\r\n //this.currentId++;\r\n //var toAdd:notification=new notification(type, message,this.currentId,params);\r\n\r\n // this._notifications.push(toAdd);\r\n\r\n /* $.notify('Ceci est une notification standard');\r\n $.notify('Ceci est une notification de type \"warning\" avec une custom', { type: 'warning', icon: 'warning' });\r\n $.notify('Ceci est une notification de type \"error\" avec une icône custom', { type: 'error', icon: 'bolt' });\r\n $.notify('Ceci est une notification de type \"success\", sans icône', { type: 'success' });*/\r\n\r\n switch (type)\r\n {\r\n case notificationType.Fatal:\r\n $.notify(transMessage, { type: 'error', icon: 'bolt' });\r\n break;\r\n\r\n case notificationType.Info:\r\n $.notify(transMessage, { type: 'info' });\r\n break;\r\n\r\n case notificationType.Success:\r\n $.notify(transMessage, { type: 'success' });\r\n break;\r\n\r\n case notificationType.Warning:\r\n $.notify(transMessage, { type: 'warning', icon: 'warning' });\r\n break;\r\n\r\n default:\r\n $.notify(transMessage);\r\n break;\r\n }\r\n /* switch (type)\r\n {\r\n case notificationType.Fatal:\r\n break;\r\n\r\n default:\r\n this.$timeout(()=>{this.discardNotification(toAdd)},5000);\r\n break;\r\n }*/\r\n\r\n\r\n\r\n // this.$location.hash('notification-' + (this._notifications.length - 1));\r\n }\r\n\r\n notifications=():Array=>{\r\n // return this._notifications;\r\n return [];\r\n };\r\n\r\n discardNotification=(toDiscard:notification)=>{\r\n /* var i:number=0;\r\n while (inew notificationService($translateService,$location, $log.getInstance('cr.infratructure.notification'),$timeout,$q,$modal)]);\r\n\r\n}\r\n","\r\nmodule cr.infrastructure.popup {\r\n\r\n class popupService implements IPopupService {\r\n constructor(private $q: angular.IQService){\r\n }\r\n\r\n open=(url:string): angular.IPromise=> {\r\n var defer=this.$q.defer();\r\n\r\n var options:any=\r\n {\r\n path: url\r\n };\r\n\r\n if (!options || !options.path) {\r\n throw new Error(\"options.path must not be empty\");\r\n }\r\n options = angular.extend({\r\n windowName: 'ConnectWithOAuth' // should not include space for IE\r\n , windowOptions: 'location=0,status=0,width=640,height=400'\r\n , callback: function () { window.location.reload(); }\r\n }, options);\r\n\r\n var oauthWindow = window.open(options.path, options.windowName, options.windowOptions);\r\n oauthWindow.focus();\r\n\r\n /*\r\n var oauthInterval = window.setInterval(function () {\r\n if (oauthWindow.closed) {\r\n window.clearInterval(oauthInterval);\r\n defer.resolve(null);\r\n }\r\n }, 1000);*/\r\n\r\n return defer.promise;\r\n }\r\n }\r\n\r\n popupModule.factory('popupService',[\"$q\",($q)=>new popupService($q)]);\r\n}\r\n","\r\nmodule cr.infrastructure.notification {\r\n\r\n class messageCtrl {\r\n private $log: angular.ILogService;\r\n\r\n constructor(private $scope: any,messageData) {\r\n this.$scope.messageData=messageData;\r\n this.$scope.context=messageData.context?messageData.context:$scope.context;\r\n }\r\n }\r\n\r\n angular.module(\"cr.infrastructure.notification\").controller(\"messageCtrl\",[\"$scope\",\"messageData\",messageCtrl]);\r\n\r\n}\r\n","\r\nmodule cr.infrastructure.notification {\r\n\r\n\r\n\r\n interface alertsCtrlScope extends angular.IScope {\r\n alerts():Array;\r\n }\r\n\r\n class notificationCtrl {\r\n private $log: angular.ILogService;\r\n\r\n close(notification)\r\n {\r\n this.notificationService.discardNotification(notification);\r\n }\r\n\r\n getNotificationClass(notification:notification)\r\n {\r\n\r\n switch (notification.type){\r\n case notificationType.Fatal:\r\n return \"danger\";\r\n\r\n case notificationType.Info:\r\n return \"info\";\r\n\r\n case notificationType.Success:\r\n return \"success\";\r\n\r\n case notificationType.Warning:\r\n return \"warning\";\r\n }\r\n return \"danger\";\r\n }\r\n\r\n constructor(private $scope: any, $log: any, private notificationService:INotificationService) {\r\n this.$log = $log.getInstance('cr.infrastructure.notification');\r\n\r\n this.$scope.notifications=notificationService.notifications;\r\n this.$scope.close=(notification)=>this.close(notification);\r\n this.$scope.getNotificationClass=(notification)=>this.getNotificationClass(notification);\r\n\r\n //this.$scope.testApi = () => this.testApi();\r\n }\r\n\r\n }\r\n\r\n angular.module(\"cr.infrastructure.notification\").controller(\"notificationCtrl\",[\"$scope\", \"$log\", \"notificationService\",($scope,$log,notificationService)=>new notificationCtrl($scope,$log,notificationService)]);\r\n\r\n}\r\n","/**\r\n * Created by christian on 07/01/2016.\r\n */\r\nmodule cr.table\r\n{\r\n class tablePopupCtrl\r\n {\r\n static $inject = ['$scope','$modalInstance','popupData'];\r\n\r\n Dismiss=()=>this.$modalInstance.dismiss();\r\n\r\n SelectEntity=(action,row)=>\r\n {\r\n this.$modalInstance.close(row);\r\n }\r\n\r\n constructor(private $scope,private $modalInstance,private popupData)\r\n {\r\n $scope.context=popupData.context;\r\n $scope.options={ enabled:true };\r\n }\r\n }\r\n\r\n // Module registrations.\r\n angular.module('cr.infrastructure').controller('tablePopupCtrl', tablePopupCtrl);\r\n\r\n}\r\n","module cr.infrastructure.breadcrumb\r\n{\r\n\r\n function isAOlderThanB(scopeA, scopeB) {\r\n if(angular.equals(scopeA.length, scopeB.length)) {\r\n return scopeA > scopeB;\r\n } else {\r\n return scopeA.length > scopeB.length;\r\n }\r\n }\r\n\r\n function parseStateRef(ref) {\r\n var parsed = ref.replace(/\\n/g, \" \").match(/^([^(]+?)\\s*(\\((.*)\\))?$/);\r\n if (!parsed || parsed.length !== 4) { throw new Error(\"Invalid state ref '\" + ref + \"'\"); }\r\n return { state: parsed[1], paramExpr: parsed[3] || null };\r\n }\r\n\r\n function $Breadcrumb() {\r\n\r\n var $$options = {\r\n prefixStateName: null,\r\n templateUrl: 'modules/infrastructure/breadcrumb/templates/breadcrumb.html',\r\n includeAbstract : true\r\n };\r\n\r\n this.setOptions = function(options) {\r\n angular.extend($$options, options);\r\n };\r\n\r\n this.$get = ['$state', '$stateParams', '$rootScope', function($state, $stateParams, $rootScope) {\r\n\r\n var $lastViewScope = $rootScope;\r\n\r\n // Early catch of $viewContentLoaded event\r\n $rootScope.$on('$viewContentLoaded', function (event) {\r\n // With nested views, the event occur several times, in \"wrong\" order\r\n if(isAOlderThanB(event.targetScope.$id, $lastViewScope.$id)) {\r\n $lastViewScope = event.targetScope;\r\n }\r\n });\r\n\r\n // Get the parent state\r\n var $$parentState = function(state) {\r\n // Check if state has explicit parent OR we try guess parent from its name\r\n var parent = state.parent || (/^(.+)\\.[^.]+$/.exec(state.name) || [])[1];\r\n var isObjectParent = typeof parent === \"object\";\r\n // if parent is a object reference, then extract the name\r\n return isObjectParent ? parent.name : parent;\r\n };\r\n\r\n // Add the state in the chain if not already in and if not abstract\r\n var $$addStateInChain = function(chain, stateRef) {\r\n var conf,\r\n parentParams,\r\n ref = parseStateRef(stateRef),\r\n force = false,\r\n skip = false;\r\n\r\n for(var i=0, l=chain.length; i' +\r\n '
  • ' +\r\n '{{step.ncyBreadcrumbLabel}}' +\r\n '{{step.ncyBreadcrumbLabel}}' +\r\n '/' +\r\n '
  • ' +\r\n '',\r\n bootstrap3: '
      ' +\r\n '
    1. ' +\r\n '{{step.ncyBreadcrumbLabel}}' +\r\n '{{step.ncyBreadcrumbLabel}}' +\r\n '
    2. ' +\r\n '
    '\r\n };\r\n\r\n return {\r\n restrict: 'AE',\r\n replace: true,\r\n scope: {},\r\n template: $breadcrumb.getTemplate($$templates),\r\n templateUrl: $breadcrumb.getTemplateUrl(),\r\n link: {\r\n post: function postLink(scope) {\r\n var labelWatchers = [];\r\n\r\n var renderBreadcrumb = function() {\r\n deregisterWatchers(labelWatchers);\r\n var viewScope = $breadcrumb.$getLastViewScope();\r\n scope.steps = $breadcrumb.getStatesChain(false);\r\n\r\n //console.log(\"steps:\"+angular.toJson(scope.steps.length));\r\n\r\n angular.forEach(scope.steps, function (step) {\r\n if (step.ncyBreadcrumb && step.ncyBreadcrumb.label) {\r\n var parseLabel = $interpolate(step.ncyBreadcrumb.label);\r\n step.ncyBreadcrumbLabel = parseLabel(viewScope);\r\n // Watcher for further viewScope updates\r\n registerWatchers(labelWatchers, parseLabel, viewScope, step);\r\n } else {\r\n step.ncyBreadcrumbLabel = step.name;\r\n }\r\n });\r\n };\r\n\r\n $rootScope.$on('$viewContentLoaded', function () {\r\n renderBreadcrumb();\r\n });\r\n\r\n // View(s) may be already loaded while the directive's linking\r\n renderBreadcrumb();\r\n }\r\n }\r\n };\r\n }\r\n\r\n BreadcrumbDirective.$inject = ['$interpolate', '$breadcrumb', '$rootScope'];\r\n\r\n function BreadcrumbLastDirective($interpolate, $breadcrumb, $rootScope) {\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {},\r\n template: '{{ncyBreadcrumbLabel}}',\r\n compile: function(cElement, cAttrs) {\r\n\r\n // Override the default template if ncyBreadcrumbLast has a value\r\n var template = cElement.attr(cAttrs.$attr.ncyBreadcrumbLast);\r\n if(template) {\r\n cElement.html(template);\r\n }\r\n\r\n return {\r\n post: function postLink(scope) {\r\n var labelWatchers = [];\r\n\r\n var renderLabel = function() {\r\n deregisterWatchers(labelWatchers);\r\n var viewScope = $breadcrumb.$getLastViewScope();\r\n var lastStep = $breadcrumb.getLastStep();\r\n if(lastStep) {\r\n scope.ncyBreadcrumbLink = lastStep.ncyBreadcrumbLink;\r\n if (lastStep.ncyBreadcrumb && lastStep.ncyBreadcrumb.label) {\r\n var parseLabel = $interpolate(lastStep.ncyBreadcrumb.label);\r\n scope.ncyBreadcrumbLabel = parseLabel(viewScope);\r\n // Watcher for further viewScope updates\r\n // Tricky last arg: the last step is the entire scope of the directive !\r\n registerWatchers(labelWatchers, parseLabel, viewScope, scope);\r\n } else {\r\n scope.ncyBreadcrumbLabel = lastStep.name;\r\n }\r\n }\r\n };\r\n\r\n $rootScope.$on('$viewContentLoaded', function () {\r\n renderLabel();\r\n });\r\n\r\n // View(s) may be already loaded while the directive's linking\r\n renderLabel();\r\n }\r\n };\r\n\r\n }\r\n };\r\n }\r\n BreadcrumbLastDirective.$inject = ['$interpolate', '$breadcrumb', '$rootScope'];\r\n\r\n function BreadcrumbTextDirective($interpolate, $breadcrumb, $rootScope) {\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {},\r\n template: '{{ncyBreadcrumbChain}}',\r\n\r\n compile: function(cElement, cAttrs) {\r\n // Override the default template if ncyBreadcrumbText has a value\r\n var template = cElement.attr(cAttrs.$attr.ncyBreadcrumbText);\r\n if(template) {\r\n cElement.html(template);\r\n }\r\n\r\n var separator = cElement.attr(cAttrs.$attr.ncyBreadcrumbTextSeparator) || ' / ';\r\n\r\n return {\r\n post: function postLink(scope) {\r\n var labelWatchers = [];\r\n\r\n var registerWatchersText = function(labelWatcherArray, interpolationFunction, viewScope) {\r\n angular.forEach(getExpression(interpolationFunction), function(expression) {\r\n var watcher = viewScope.$watch(expression, function(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n renderLabel();\r\n }\r\n });\r\n labelWatcherArray.push(watcher);\r\n });\r\n };\r\n\r\n var renderLabel = function() {\r\n deregisterWatchers(labelWatchers);\r\n\r\n var viewScope = $breadcrumb.$getLastViewScope();\r\n var steps = $breadcrumb.getStatesChain();\r\n var combinedLabels = [];\r\n angular.forEach(steps, function (step) {\r\n if (step.ncyBreadcrumb && step.ncyBreadcrumb.label) {\r\n var parseLabel = $interpolate(step.ncyBreadcrumb.label);\r\n combinedLabels.push(parseLabel(viewScope));\r\n // Watcher for further viewScope updates\r\n registerWatchersText(labelWatchers, parseLabel, viewScope);\r\n } else {\r\n combinedLabels.push(step.name);\r\n }\r\n });\r\n\r\n scope.ncyBreadcrumbChain = combinedLabels.join(separator);\r\n };\r\n\r\n $rootScope.$on('$viewContentLoaded', function () {\r\n renderLabel();\r\n });\r\n\r\n // View(s) may be already loaded while the directive's linking\r\n renderLabel();\r\n }\r\n };\r\n\r\n }\r\n };\r\n }\r\n BreadcrumbTextDirective.$inject = ['$interpolate', '$breadcrumb', '$rootScope'];\r\n\r\n breadcrumbModule.provider('$breadcrumb', $Breadcrumb)\r\n .directive('ncyBreadcrumb', BreadcrumbDirective)\r\n .directive('ncyBreadcrumbLast', BreadcrumbLastDirective)\r\n .directive('ncyBreadcrumbText', BreadcrumbTextDirective);\r\n}","\r\nmodule cr.infrastructure.carousel {\r\n export function carouselDirectiveFactory() {\r\n return function () {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'modules/infrastructure/carousel/templates/carousel.html',\r\n replace: true,\r\n scope: {\r\n duration: '@'\r\n },\r\n transclude: true,\r\n controller: ['$interval', '$scope',function($interval: angular.ITimeoutService, $scope: angular.IScope) {\r\n\r\n var items = [];\r\n var id = 0;\r\n\r\n var duration = $scope['duration'] || 5000;\r\n\r\n function next() {\r\n var position = 0;\r\n\r\n angular.forEach(items, function (item) {\r\n if (item.isActive) {\r\n position = item.id;\r\n }\r\n\r\n item.isActive = false;\r\n });\r\n\r\n if (! items[++position]) {\r\n position = 0;\r\n }\r\n\r\n items[position].isActive = true;\r\n }\r\n\r\n var $progress = $('.carousel-progress');\r\n\r\n $interval(() => {\r\n next();\r\n }, duration);\r\n\r\n function animate() {\r\n $progress.css('width', '0%');\r\n $progress.animate({\r\n width: '100%'\r\n }, +duration, function () {\r\n animate();\r\n });\r\n }\r\n\r\n animate();\r\n\r\n this.addTab = (item:ITabItem) => {\r\n if (items.length === 0) {\r\n item.isActive = true;\r\n }\r\n\r\n item.id = id;\r\n\r\n items.push(item);\r\n\r\n id = id + 1;\r\n };\r\n }]\r\n };\r\n };\r\n }\r\n}\r\n","module cr.infrastructure.carousel {\r\n export function carouselItemDirectiveFactory() {\r\n return function () {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'modules/infrastructure/carousel/templates/carousel-item.html',\r\n replace: true,\r\n require: '^crCarousel',\r\n scope: {\r\n name: '@',\r\n quote: '@'\r\n },\r\n transclude: true,\r\n link: (scope, element, attrs, crCarousel: any) => {\r\n\r\n crCarousel.addTab(scope);\r\n\r\n }\r\n };\r\n };\r\n }\r\n}\r\n","\r\nmodule cr.infrastructure.carousel {\r\n export function imageCarouselDirectiveFactory() {\r\n return function () {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'modules/infrastructure/carousel/templates/image-carousel.html',\r\n replace: true,\r\n scope: {\r\n duration: '@'\r\n },\r\n transclude: true,\r\n controller: ['$interval', '$scope',function($interval: angular.ITimeoutService, $scope: angular.IScope) {\r\n\r\n var items = [];\r\n var id = 0;\r\n\r\n var duration = $scope['duration'] || 5000;\r\n\r\n function next() {\r\n var position = 0;\r\n\r\n angular.forEach(items, function (item) {\r\n if (item.isActive) {\r\n position = item.id;\r\n }\r\n\r\n item.isActive = false;\r\n });\r\n\r\n if (! items[++position]) {\r\n position = 0;\r\n }\r\n items[position].isActive = true;\r\n }\r\n\r\n var $progress = $('.carousel-progress');\r\n\r\n $interval(() => {\r\n next();\r\n }, duration);\r\n\r\n function animate() {\r\n $progress.css('width', '0%');\r\n $progress.animate({\r\n width: '100%'\r\n }, +duration, function () {\r\n animate();\r\n });\r\n }\r\n\r\n animate();\r\n\r\n this.addTab = (item:ImageTabItem) => {\r\n console.log(\"Adding tab\");\r\n if (items.length === 0) {\r\n item.isActive = true;\r\n }\r\n\r\n item.id = id;\r\n\r\n items.push(item);\r\n\r\n id = id + 1;\r\n };\r\n }]\r\n };\r\n };\r\n }\r\n}\r\n","module cr.infrastructure.carousel {\r\n export function imageCarouselItemDirectiveFactory() {\r\n return function () {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'modules/infrastructure/carousel/templates/image-carousel-item.html',\r\n replace: true,\r\n require: '^crImageCarousel',\r\n scope: {\r\n image: '@',\r\n },\r\n transclude: true,\r\n link: (scope, element, attrs, crImageCarousel: any) => {\r\n console.log(\"Adding tab\");\r\n crImageCarousel.addTab(scope);\r\n\r\n }\r\n };\r\n };\r\n }\r\n}\r\n","module cr.infrastructure {\r\n\r\n export interface IMenuScope extends angular.IScope {\r\n allItems:Array;\r\n navigate(item:string);\r\n }\r\n\r\n angular.module('cr.infrastructure.menu').directive('crMainMenu', ['menuService', '$state', '$compile'/*, 'userPermission'*/\r\n , (menuService:cr.infrastructure.IMenuService, $state:angular.ui.IStateService, $compile: angular.ICompileService/*, userPermission*/) => {\r\n return {\r\n restrict: 'E',\r\n scope: {},\r\n controller: ['$scope', function ($scope:IMenuScope) {\r\n }],\r\n link: function (scope:IMenuScope, element) {\r\n /**\r\n * jQuery in combination with TypeScript complainig about mmenu\r\n * Workaround is to store jQuery in a custom :any object\r\n * @type {JQueryStatic}\r\n */\r\n var mQuery:any = jQuery;\r\n var panelCounter = 0;\r\n var items = menuService.getItems();\r\n\r\n if (!items) {\r\n return;\r\n }\r\n\r\n var panels = '';\r\n var html = '';\r\n\r\n element.html(html);\r\n $compile(element.contents())(scope);\r\n\r\n scope.navigate = (item) => {\r\n if (item) {\r\n $state.go(item);\r\n }\r\n mQuery('#menu').mmenu().trigger('close.mm');\r\n };\r\n\r\n /**\r\n * Make sure all HTML is compiled before initializing mmenu()\r\n * That's why I use a provider to configure the menu elements\r\n */\r\n\r\n /**\r\n * DOM Events from main.js\r\n */\r\n mQuery('#menu').mmenu().on('opening.mm', function () {\r\n $('#mm-blocker').detach().prependTo('#main');\r\n });\r\n\r\n mQuery(document).on('click', '#menu-toggle', function (e) {\r\n e.preventDefault();\r\n\r\n var action = $('html').hasClass('mm-opened') ? 'close.mm' : 'open.mm';\r\n\r\n mQuery('#menu').mmenu().trigger(action);\r\n });\r\n\r\n $('[data-info]').on('mouseenter click touch', function () {\r\n var $this = $(this),\r\n $target = $($this.data('info')),\r\n $menu = $('#menu');\r\n\r\n $this.closest('li').addClass('active');\r\n $target.addClass('open');\r\n $menu.addClass('info-open');\r\n\r\n $target.add($this.parent())\r\n .off('mouseenter mouseleave')\r\n .on({\r\n 'mouseenter': function () {\r\n var nmbr: any = ($this.data('timeout'));\r\n clearTimeout( nmbr );\r\n },\r\n 'mouseleave': function () {\r\n $this.data('timeout', setTimeout(function () {\r\n $this.closest('li').removeClass('active');\r\n $target.removeClass('open');\r\n $menu.removeClass('info-open');\r\n }, 200));\r\n }\r\n });\r\n });\r\n\r\n $('.panel-info .close').on('click touch', function (e) {\r\n e.preventDefault();\r\n $(this).closest('.panel-info').removeClass('open');\r\n });\r\n }\r\n };\r\n }]);\r\n}\r\n","module cr.infrastructure {\r\n var app = angular.module('cr.infrastructure');\r\n app.directive('crMenusquare', [function () {\r\n return {\r\n restrict: 'E',\r\n replace: true,\r\n transclude: true,\r\n controller: ['$scope', function($scope) {\r\n this.context = $scope.context;\r\n }],\r\n templateUrl: 'modules/infrastructure/menusquare/templates/menusquare.html'\r\n };\r\n }]);\r\n\r\n}\r\n","module cr.infrastructure {\r\n var app = angular.module('cr.infrastructure');\r\n app.directive('crMenusquareItem', ['$state', (state) => {\r\n return {\r\n require: '^crMenusquare',\r\n restrict: 'E',\r\n replace: true,\r\n scope: {\r\n sqIcon: '@',\r\n sqTitle: '@',\r\n sqDescription: '@',\r\n sqAnimDirection: '@',\r\n sqActions: '=',\r\n sqClass: '@',\r\n sqRoute: '@',\r\n sqRouteParams: '@',\r\n sqHref: '@',\r\n sqHrefTarget: '@',\r\n sqAction: '&'\r\n },\r\n link: function(scope, element, attrs, crMenusquare) {\r\n\r\n //console.log(\"ACTIONS: \"+angular.toJson(scope.sqActions));\r\n\r\n // set translation context\r\n scope.context = crMenusquare.context;\r\n\r\n scope.actionClass = (scope.sqAction) ? 'square-action' : '';\r\n\r\n // define animation\r\n scope.animClass = (scope.sqAnimDirection) ? 'anim-slide' + scope.sqAnimDirection : '';\r\n // set default to down if none set but has description\r\n if (scope.animClass == '' && scope.sqDescription) scope.animClass = 'anim-slidedown';\r\n\r\n // set target if needed\r\n if (scope.sqHrefTarget) {\r\n element.find('a').attr('target', scope.sqHrefTarget);\r\n }\r\n\r\n // execute action if given\r\n scope.handleClick = (action,$event)=> {\r\n\r\n if (scope.sqRoute) {\r\n // go to given route, with params if given as well\r\n if (scope.sqRouteParams) {\r\n var params = angular.fromJson(scope.sqRouteParams);\r\n state.go(scope.sqRoute, params);\r\n } else {\r\n state.go(scope.sqRoute);\r\n }\r\n } else {\r\n // execute action callback\r\n if (action!=null)\r\n {\r\n //console.log(\"handle click\");\r\n scope.sqAction({action:action});\r\n $event.stopPropagation();\r\n } else {\r\n scope.sqAction({action:{Name:'click'}});\r\n }\r\n\r\n }\r\n }\r\n },\r\n templateUrl: 'modules/infrastructure/menusquare/templates/menusquare-item.html'\r\n };\r\n }]);\r\n}\r\n","\r\nmodule cr.infrastructure.notification\r\n{\r\n export function notificationDirectiveFactory()\r\n {\r\n return function() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"modules/infrastructure/notification/templates/notification.html\",\r\n\r\n replace: true\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","module cr.infrastructure {\r\n var app = angular.module('cr.infrastructure');\r\n app.directive('crProgressBar', [function () {\r\n return {\r\n require: '^crProgress',\r\n restrict: 'E',\r\n\r\n replace: true,\r\n scope: {\r\n prData: '@',\r\n prClass: '@',\r\n prLabel : '@'\r\n },\r\n templateUrl: 'modules/infrastructure/progress/templates/progressbar.html',\r\n link: function(scope, element, attrs, crProgress) {\r\n\r\n // set translation context\r\n scope.context = crProgress.context;\r\n }\r\n //template: '
    Value: {{ prData }}
    '\r\n };\r\n }]);\r\n\r\n}\r\n\r\n\r\n;\r\n","module cr.infrastructure {\r\n var app = angular.module('cr.infrastructure');\r\n app.directive('crProgress', [function () {\r\n return {\r\n restrict: 'E',\r\n replace: true,\r\n transclude: true,\r\n scope: {\r\n prHeight: '@',\r\n prSize: '@'\r\n },\r\n controller: ['$scope', function($scope) {\r\n this.context = $scope.context;\r\n this.height = $scope.prHeight ? $scope.prHeight : 20;\r\n\r\n }],\r\n templateUrl: 'modules/infrastructure/progress/templates/progress.html'\r\n //template: '
    Value: {{ prData }}
    '\r\n };\r\n }]);\r\n\r\n}\r\n\r\n\r\n;\r\n","/**\r\n * Created by vanprjo on 20/10/2015.\r\n */\r\nmodule cr.infrastructure {\r\n var app = angular.module('cr.infrastructure');\r\n app.directive('crProgressLabel', [function () {\r\n return {\r\n require: '^crProgress',\r\n restrict: 'E',\r\n\r\n replace: true,\r\n scope: {\r\n prLabel: '@'\r\n },\r\n templateUrl: 'modules/infrastructure/progress/templates/progresslabel.html',\r\n link: function(scope, element, attrs, crProgress) {\r\n scope.height = crProgress.height;\r\n // set translation context\r\n scope.context = crProgress.context;\r\n }\r\n };\r\n }]);\r\n\r\n}\r\n\r\n\r\n;\r\n","var app = angular.module('cr.infrastructure.scrollspy');\r\n\r\n/**\r\n *\r\n */\r\napp.directive('crScrollSpy', ['$window', '$location', '$anchorScroll', '$rootScope', function ($window, $location, $anchorScroll, $rootScope) {\r\n return {\r\n restrict: \"EA\",\r\n templateUrl: 'modules/infrastructure/scrollspy/templates/cr-scroll-spy.html',\r\n transclude: true,\r\n replace: false,\r\n controller: function ($scope) {\r\n $scope.spies = [];\r\n\r\n $scope.spyClick = function (id) {\r\n var $el = $('#' + id);\r\n \r\n if ($el && $el.offset()) {\r\n $('html, body').animate({\r\n scrollTop: $el.offset().top + 10 - 50 // Navbar header height\r\n }, 300);\r\n }\r\n };\r\n\r\n // Reset spies on statechange\r\n $rootScope.$on('$stateChangeStart', function (event) {\r\n $scope.spies = [];\r\n });\r\n\r\n this.addSpy = function (spyObj) {\r\n var spy: any = _.findWhere($scope.spies, { id: spyObj.id });\r\n\r\n if (!spy) {\r\n $scope.spies.push(spyObj);\r\n } else {\r\n // Update spy, it has a reference! \r\n spy.name = spyObj.name;\r\n }\r\n };\r\n },\r\n link: function (scope, elem, attrs) {\r\n var spies = [];\r\n\r\n function highLight($el) {\r\n // Remove active class\r\n $('[data-spy-id]').parent().removeClass('active');\r\n\r\n // Add new active class to provided element\r\n $el.parent().addClass('active');\r\n }\r\n\r\n scope.$watch('spies', function (newSpies) {\r\n if (newSpies && newSpies.length > 0) {\r\n spies = newSpies;\r\n }\r\n }, true);\r\n\r\n $(window).scroll(function () {\r\n var $el, id, lastSpy;\r\n\r\n\r\n angular.forEach(spies, function (value) {\r\n if (!value.id) {\r\n return;\r\n }\r\n\r\n $el = $('#' + value.id);\r\n\r\n if ($el && $el.offset() && $el.offset().top - $window.scrollY <= 0) {\r\n id = $el.attr('id');\r\n\r\n highLight($('[data-spy-id=' + id + ']'));\r\n }\r\n });\r\n\r\n // If scrollbar is at the bottom make last spie active\r\n if ($(window).scrollTop() + $(window).height() >= $(document).height()) {\r\n if (spies.length > 0) {\r\n lastSpy = spies[spies.length - 1];\r\n\r\n $el = $('#' + lastSpy.id);\r\n\r\n if ($el) {\r\n id = $el.attr('id');\r\n\r\n highLight($('[data-spy-id=' + id + ']'));\r\n }\r\n }\r\n } \r\n });\r\n }\r\n };\r\n}]);\r\n","var app = angular.module('cr.infrastructure.scrollspy');\r\n\r\napp.directive('crSpy', ['$timeout', '$location', '$anchorScroll', function ($timeout, $location, $anchorScroll) {\r\n\r\n return {\r\n restrict: 'A',\r\n require: '^?crScrollSpy',\r\n scope: {\r\n name: '@crSpyName'\r\n },\r\n link: function (scope, elem, attrs, affix) {\r\n\r\n $timeout(function () {\r\n var id = $(elem[0]).attr('id');\r\n\r\n scope.$watch('name', function (name) {\r\n if (name && affix) {\r\n affix.addSpy({\r\n name: name,\r\n id: id\r\n });\r\n }\r\n }, 1);\r\n });\r\n \r\n }\r\n };\r\n}]);\r\n","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crColAction',()=> {\r\n //console.log(\"crCol instance\");\r\n return {\r\n restrict:'A',\r\n priority:100,\r\n templateUrl:'modules/infrastructure/table/templates/craction.html',\r\n link:function(scope,element,attrs){\r\n scope.performAction=(action,$event)=>{\r\n //console.log(\"action icon: \"+angular.toJson(action));\r\n switch (action.type.toLowerCase()){\r\n case \"action\":\r\n //console.log(\"onrowaction: \"+action);\r\n\r\n scope.onRowAction( action, scope.row, $event )\r\n //scope.onRowAction(action.action, scope.row,$event);\r\n break;\r\n\r\n case \"url\":\r\n window.location=action.url;\r\n break;\r\n }\r\n\r\n $event.stopPropagation();\r\n\r\n }\r\n\r\n scope.actions=[];\r\n\r\n // console.log(\"scope in action: \"+angular.toJson(scope.value));\r\n\r\n if (!scope.column)\r\n {\r\n scope.actions.push({type:'Action',action:'Select',class:'fa fa-chevron-right'});\r\n } else if (scope.value) {\r\n if ( typeof scope.value === \"string\" ) {\r\n var strActions = scope.value.split(',');\r\n angular.forEach(strActions, strAction=> {\r\n var tokens = strAction.split(':');\r\n switch (tokens[0].toLowerCase()) {\r\n case \"action\":\r\n scope.actions.push({type: tokens[0], action: tokens[2], class: tokens[1]});\r\n break;\r\n\r\n case \"url\":\r\n // console.log(\"url: \"+tokens[2]);\r\n if (tokens[2] && scope.row[tokens[2]]) scope.actions.push({\r\n type: 'url',\r\n url: scope.row[tokens[2]],\r\n class: tokens[1]\r\n });\r\n break;\r\n }\r\n\r\n });\r\n } else {\r\n angular.forEach( scope.value, value => {\r\n if ( value && value.type && value.action ) {\r\n // check if the row contains an attribute with the url\r\n // this attribute is named to the value in the url property of the action\r\n if( value.url && value.type === \"url\" && scope.row[value.url] ){\r\n value.url = scope.row[value.url];\r\n }\r\n scope.actions.push(value);\r\n }\r\n } );\r\n }\r\n //console.log(\"action: \"+scope.value);\r\n }\r\n //console.log(\"action: \"+scope.onRowAction);\r\n //element.replaceWith('LA');\r\n }\r\n }\r\n });\r\n}\r\n","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crColImage',()=> {\r\n //console.log(\"crCol instance\");\r\n return {\r\n restrict:'A',\r\n priority:100,\r\n //template:'',\r\n link:function(scope,element,attrs){\r\n if (scope.value && scope.value!='') {\r\n if (scope.value.indexOf(\"http://\")!=0) element.html(\"\");\r\n else element.html(\"\");\r\n\r\n }\r\n }\r\n }\r\n });\r\n}","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crColPos',['$interpolate',($interpolate)=> {\r\n //console.log(\"crCol instance\");\r\n return {\r\n restrict: 'A',\r\n priority: 100,\r\n //template:'{{value}}', // will create a watch\r\n link: function (scope, element, attrs) {\r\n //element.html($interpolate(\"{{value}}\")(scope));\r\n switch (scope.value)\r\n {\r\n case \"-1\":\r\n element.html(\"DSQ\");\r\n break;\r\n\r\n case \"-2\":\r\n element.html(\"DNF\");\r\n break;\r\n\r\n case \"-3\":\r\n element.html(\"DNS\");\r\n break;\r\n\r\n case \"-4\":\r\n element.html(\"HD\");\r\n break;\r\n\r\n default:\r\n element.html(scope.value+\".\");\r\n break;\r\n }\r\n\r\n }\r\n }\r\n }]);\r\n\r\n\r\n}","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crColStyle', ['$compile',($compile)=> {\r\n\r\n return {\r\n restrict: 'A',\r\n priority: 110,\r\n\r\n link: function (scope, element, attrs) {\r\n var col = scope.column;\r\n var toRet = \"\";\r\n if (col.Bold) toRet = toRet + \"text-bold \";\r\n if (col.Colspan>=0){\r\n element.attr(\"colspan\",col.Colspan);\r\n }\r\n if (col.Italic) toRet = toRet + \"text-italic \";\r\n if (col.Alignment == 1 || col.Alignment=='Right') toRet = toRet + \"text-right \";\r\n if (col.UrlColumn && scope.row[col.UrlColumn]!='')\r\n {\r\n //var el = angular.element($compile(\"\")(scope)).append(element.contents());\r\n\r\n var el = angular.element(\"\").append(element.contents());\r\n element.html(el);\r\n }\r\n if (col.Alignment == 2 || col.Alignment=='Center' || col.Alignment=='Middle') {\r\n toRet = toRet + \"text-center \";\r\n var el = angular.element(\"
    \").append(element.contents());\r\n element.html(el);\r\n }\r\n\r\n\r\n element.addClass(toRet);\r\n\r\n }\r\n }\r\n }]);\r\n}\r\n","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crColText',['$interpolate', '$filter', ($interpolate, $filter)=> {\r\n //console.log(\"crCol instance\");\r\n return {\r\n restrict: 'A',\r\n priority: 100,\r\n //template:'{{value}}', // will create a watch\r\n link: function (scope, element, attrs) {\r\n //element.html($interpolate(\"{{value}}\")(scope));\r\n var value = scope.value;\r\n if( scope.column.Filter && scope.column.Filter.Name ) {\r\n value = $filter(scope.column.Filter.Name)(scope.value, scope.column.Filter.Arg);\r\n }\r\n element.html( value );\r\n }\r\n }\r\n }]);\r\n\r\n\r\n}\r\n","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crColTranslation',()=> {\r\n console.log(\"crCol instance\");\r\n\r\n return {\r\n restrict:'A',\r\n template:'{{value|tc:context}}',\r\n link:function(scope,element,attrs){\r\n //element.replaceWith('LA');\r\n }\r\n }\r\n });\r\n\r\n}","module cr.infrastructure\r\n{\r\n class masterSlaveTableCtrl {\r\n private $log: angular.ILogService;\r\n\r\n showSelect=()=>{\r\n return this.$scope.showSelect;\r\n }\r\n\r\n filteredColumns=()=>{\r\n return this.$scope.filteredColumns;\r\n }\r\n\r\n onRowAction=(action,data)=>{\r\n console.log(\"table ctrl: \"+action+\" - \");\r\n if (this.$scope.rowAction) {\r\n this.$scope.rowAction({action:action,data:data});\r\n }\r\n }\r\n\r\n constructor(private $scope: any,private $q: angular.IQService,$element:any,private $timeout) {\r\n\r\n //this.$scope &.messageData=messageData;\r\n //this.$scope.context=messageData.context?messageData.context:$scope.context;\r\n var defaultSettings = {\r\n currentPage: 1,\r\n numPerPage: 50,\r\n enabled: true\r\n };\r\n\r\n $scope.onRowAction=(action,data)=>this.onRowAction(action,data);\r\n\r\n $scope.filteredRows = [];\r\n $scope.filteredColumns = [];\r\n $scope.filteredMasterColumns = [];\r\n $scope.groups=[];\r\n\r\n $scope.options = angular.extend(defaultSettings, $scope.defaultOptions);\r\n\r\n\r\n $scope.$watch('rows', (rows) => {\r\n // Recalculate pages\r\n });\r\n\r\n $scope.getClass=(col)=>{\r\n var toRet=\"\";\r\n if (col.Alignment==1) toRet=toRet+\"text-right \";\r\n if (col.Alignment==2) toRet=toRet+\"text-center \";\r\n return toRet;\r\n }\r\n\r\n $scope.getGroupClass=(group)=>{\r\n var toRet=\"text-center\";\r\n return toRet;\r\n }\r\n\r\n $scope.sort = (columnName, asc) => {\r\n $scope.rows.sort((a, b) => {\r\n if (a[columnName] > b[columnName]) {\r\n return asc ? 1 : -1;\r\n }\r\n\r\n if (a[columnName] < b[columnName]) {\r\n return asc ? -1: 1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n\r\n };\r\n\r\n }\r\n }\r\n\r\n angular.module(\"cr.infrastructure\").directive(\"crReplace\",[\"$interpolate\",$interpolate=>\r\n {\r\n return {\r\n restrict: 'EA',\r\n templateUrl: function (iElement, iAttrs) {\r\n if (!iAttrs.crReplace) throw new Error(\"cr-replace: template url must be provided\");\r\n // console.log(\"interpolate: \"+$interpolate(iAttrs.crReplace))();\r\n return \"modules/infrastructure/table/templates/crentry.html\";\r\n },\r\n replace: true\r\n\r\n }\r\n }]);\r\n\r\n angular.module('cr.infrastructure')\r\n .directive('crMasterSlaveTable', [\"$timeout\",($timeout) => {\r\n return {\r\n restrict: 'E',\r\n replace: true,\r\n //transclude:true,\r\n templateUrl: 'modules/infrastructure/table/templates/crmasterslavetable.html',\r\n scope: {\r\n options: '=?',\r\n //showSelect: '=',\r\n rowAction: '&',\r\n table: '='\r\n },\r\n controller: ['$scope', '$q', '$element','$timeout', masterSlaveTableCtrl],\r\n link: (scope, el, attr) => {\r\n scope.test=(row)=>{\r\n //console.log(\"CA CEST COOL \"+angular.toJson(row))\r\n };\r\n\r\n var slaveTableDefinition;\r\n\r\n\r\n scope.SelectRow=row=>{\r\n //console.log(\"table select row...\");\r\n }\r\n\r\n scope.entries=[];\r\n\r\n function searchColumns(from:number,to:number){\r\n var slaveWeight=[];\r\n var idx:number=0;\r\n\r\n var toRet=[];\r\n\r\n scope.table.SlaveTableDefinition.Columns.forEach(col=>{\r\n\r\n var cst=col;\r\n if (cst.Visible){\r\n if (idx>=from && idxoCol;\r\n var weight=0;\r\n if (!isNaN(parseFloat(col.Weight)) && isFinite(col.Weight)) weight=parseInt(col.Weight);\r\n //if (weight>0) console.log(\"col weight: \"+weight);\r\n\r\n\r\n if (col.Visible && weight<=scope.width) {\r\n\r\n toRet.columns.push(col);\r\n visibleSlaves[col.Name]=col;\r\n\r\n // build groups\r\n if (!col.GroupDisplayName) col.GroupDisplayName='';\r\n\r\n //console.log(\"bien: \"+col.GroupDisplayName+\" / \"+curGroup.GroupDisplayName);\r\n\r\n //console.log(\"groupDisplayName:\"+curGroup.GroupDisplayName+\" / \"+col.GroupDisplayName);\r\n if (curGroup.GroupDisplayName==col.GroupDisplayName ){\r\n curGroup.Colspan=curGroup.Colspan+col.Colspan;\r\n } else {\r\n toRet.groups.push(curGroup);\r\n curGroup={ Colspan:col.Colspan,GroupDisplayName:col.GroupDisplayName };\r\n }\r\n }\r\n });\r\n\r\n if (scope.groups.length>0 || curGroup.GroupDisplayName!='') {\r\n toRet.groups.push(curGroup);\r\n //console.log(\"out of loop: \"+angular.toJson(curGroup));\r\n }\r\n }\r\n\r\n if (scope.masterColMappings)\r\n {\r\n scope.filteredMasterColumns=[];\r\n\r\n scope.masterColMappings.forEach(masterCol=>{\r\n\r\n var masterColWeight:number=0;\r\n\r\n masterCol.Slaves.forEach(slave=>{\r\n if (visibleSlaves.hasOwnProperty((slave).Name)) masterColWeight=masterColWeight+ (slave).Colspan;\r\n });\r\n if (masterColWeight>0){\r\n\r\n var weight=0;\r\n if (!isNaN(parseFloat(masterCol.Column.Weight)) && isFinite(masterCol.Column.Weight)) weight=parseInt(masterCol.Column.Weight);\r\n\r\n if (weight>scope.width) {\r\n //console.log(\"caca???? \"+weight+\" , \"+scope.width+\" masterColWeight: \"+masterColWeight);\r\n // previous master col takes the space allowed for the current col\r\n if (scope.filteredMasterColumns.length>0){\r\n var prv=scope.filteredMasterColumns[scope.filteredMasterColumns.length-1];\r\n prv.Colspan=prv.Colspan+masterColWeight;\r\n } else {\r\n scope.filteredMasterColumns.push({ Colspan:masterColWeight,Name:'#NA#',DisplayName:'',Type:'empty' });\r\n }\r\n } else {\r\n var copy=masterCol.Column;\r\n if (masterColWeight!=copy.Colspan){\r\n copy=angular.copy(copy);\r\n copy.Colspan=masterColWeight;\r\n }\r\n // we change the original weight of the mastercol to stay aligned with the currently visible slaves\r\n scope.filteredMasterColumns.push(copy);\r\n\r\n }\r\n\r\n }\r\n //console.log(\"MasterCol \"+ masterCol.Column.DisplayName +\"pushed with a weight of \"+masterColWeight);\r\n });\r\n }\r\n\r\n return toRet;\r\n }\r\n\r\n\r\n var updating=false;\r\n\r\n var debounceUpdate=_.debounce(()=>{\r\n //console.log(\"table width: \"+scope.width+\" (\"+el[0].offsetWidth+\") / \"+scope.filteredRows.length);\r\n // updating=true;\r\n\r\n scope.$apply(()=>\r\n {\r\n scope.width=el[0].offsetWidth;\r\n\r\n if (scope.table && scope.table.SlaveTableDefinition)\r\n {\r\n var cols=buildColumns(scope.table.SlaveTableDefinition.Columns,scope.width);\r\n scope.filteredColumns=cols.columns;\r\n scope.groups=cols.groups;\r\n\r\n //scope.filteredRows=[];\r\n // seems to force ng-repeat watch to be triggered\r\n ////scope.table.Eentries=angular.copy(scope.filteredRows);\r\n scope.entries=angular.copy(scope.table.Entries);\r\n\r\n }\r\n\r\n //console.log(\"build responsive columns\");\r\n });\r\n\r\n },250);\r\n\r\n\r\n\r\n // track width\r\n var interval=setInterval(()=> {\r\n\r\n\r\n\r\n if (scope.table && scope.table.Entries.length>0 && (!scope.width || el[0].offsetWidth!=scope.width))\r\n {\r\n scope.width=el[0].offsetWidth;\r\n debounceUpdate();\r\n }\r\n },100);\r\n\r\n el.on('$destroy', function() {\r\n clearInterval(interval);\r\n //console.log(\"stop dom watcher\");\r\n });\r\n\r\n scope.masterColMappings=[];\r\n\r\n scope.$watch('table.SlaveTableDefinition',def=>{\r\n slaveTableDefinition=def;\r\n //console.log(\"build columns!\");\r\n\r\n // found slave columns linked to each master column\r\n if (scope.table && scope.table.MasterTableDefinition){\r\n //console.log(\"table contains master columns; \"+angular.toJson(scope.table.MasterTableDefinition.Columns));\r\n\r\n scope.masterColMappings=[];\r\n var idx:number=0;\r\n\r\n scope.table.MasterTableDefinition.Columns.forEach(masterCol=>{\r\n var cst=masterCol;\r\n if (cst.Visible){\r\n scope.masterColMappings.push({ Column: cst,Slaves:searchColumns(idx,idx+cst.Colspan) });\r\n idx=idx+cst.Colspan;\r\n }\r\n });\r\n\r\n scope.entries=scope.table.Entries;\r\n\r\n\r\n }\r\n\r\n\r\n if (def && def.Columns){\r\n var fcols=buildColumns(def.Columns,scope.width);\r\n\r\n scope.filteredColumns=fcols.columns;\r\n scope.groups=fcols.groups;\r\n }\r\n\r\n\r\n\r\n });\r\n\r\n\r\n\r\n }\r\n }\r\n }]);\r\n}\r\n","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure').directive('paging', function () {\r\n\r\n // Assign null-able scope values from settings\r\n function setScopeValues(scope, attrs) {\r\n\r\n scope.List = [];\r\n scope.Hide = false;\r\n scope.page = parseInt(scope.page) || 1;\r\n scope.total = parseInt(scope.total) || 0;\r\n scope.dots = scope.dots || '...';\r\n //scope.compact = false;\r\n scope.ulClass = scope.ulClass || 'pagination';\r\n scope.adjacent = parseInt(scope.adjacent) || 1;\r\n scope.activeClass = scope.activeClass || 'active';\r\n scope.scrollTop = scope.$eval(attrs.scrollTop);\r\n scope.showPrevNext = scope.$eval(attrs.showPrevNext);\r\n }\r\n\r\n // Validate and clean up any scope values\r\n // This happens after we have set the\r\n // scope values\r\n function validateScopeValues(scope, pageCount) {\r\n\r\n // Block where the page is larger than the pageCount\r\n if (scope.page > pageCount) {\r\n scope.page = pageCount;\r\n }\r\n\r\n // Block where the page is less than 0\r\n if (scope.page <= 0) {\r\n scope.page = 1;\r\n }\r\n\r\n // Block where adjacent value is 0 or below\r\n if (scope.adjacent <= 0) {\r\n scope.adjacent = 2;\r\n }\r\n\r\n // Hide from page if we have 1 or less pages\r\n // if directed to hide empty\r\n if (pageCount <= 1) {\r\n scope.Hide = true;\r\n }\r\n }\r\n\r\n // Internal Paging Click Action\r\n function internalAction(scope, page) \r\n {\r\n // Block clicks we try to load the active page\r\n if (scope.page == page) {\r\n return;\r\n }\r\n\r\n console.log(\"paging action: \"+page);\r\n\r\n // Update the page in scope and fire any paging actions\r\n scope.page = page;\r\n scope.pagingAction({\r\n page: page\r\n });\r\n\r\n // If allowed scroll up to the top of the page\r\n if (scope.scrollTop) {\r\n scrollTo(0, 0);\r\n }\r\n }\r\n\r\n\r\n // Adds the first, previous text if desired\r\n function addPrev(scope, pageCount) {\r\n\r\n // Ignore if we are not showing\r\n // or there are no pages to display\r\n if (!scope.showPrevNext || pageCount < 1) {\r\n return;\r\n }\r\n\r\n // Calculate the previous page and if the click actions are allowed\r\n // blocking and disabling where page <= 0\r\n var disabled = scope.page - 1 <= 0;\r\n var prevPage = scope.page - 1 <= 0 ? 1 : scope.page - 1;\r\n\r\n /* var first = {\r\n value: '',\r\n title: 'First Page',\r\n liClass: disabled ? 'disabled' : '',\r\n action: function () {\r\n if(!disabled) {\r\n internalAction(scope, 1);\r\n }\r\n }\r\n };*/\r\n\r\n var prev = {\r\n value: '',\r\n title: 'Previous Page',\r\n liClass: disabled ? 'disabled' : '',\r\n action: function () {\r\n if(!disabled) {\r\n console.log('prev ok:'+prevPage);\r\n internalAction(scope, prevPage);\r\n }\r\n }\r\n };\r\n\r\n // Ignore if we are not showing\r\n // or there are no pages to display\r\n if (!scope.showPrevNext || pageCount < 1) {\r\n return;\r\n }\r\n\r\n\r\n //scope.List.push(last);\r\n //scope.List.push(first);\r\n scope.List.push(prev);\r\n\r\n }\r\n\r\n\r\n // Adds the next, last text if desired\r\n function addNext(scope, pageCount) {\r\n\r\n // Ignore if we are not showing\r\n // or there are no pages to display\r\n if (!scope.showPrevNext || pageCount < 1) {\r\n return;\r\n }\r\n\r\n // Calculate the next page number and if the click actions are allowed\r\n // blocking where page is >= pageCount\r\n var disabled = scope.page + 1 > pageCount;\r\n var nextPage = scope.page + 1 >= pageCount ? pageCount : scope.page + 1;\r\n\r\n\r\n\r\n /*var last = {\r\n value: '>>',\r\n title: 'Last Page',\r\n liClass: disabled ? 'disabled' : '',\r\n action: function () {\r\n if(!disabled){\r\n internalAction(scope, pageCount);\r\n }\r\n }\r\n };\r\n*/\r\n var next = {\r\n value: '',\r\n title: 'Next Page',\r\n liClass: disabled ? 'disabled' : '',\r\n action: function () {\r\n if(!disabled){\r\n internalAction(scope, nextPage);\r\n }\r\n }\r\n };\r\n\r\n scope.List.push(next);\r\n //scope.List.push(last);\r\n }\r\n\r\n\r\n // Add Range of Numbers\r\n function addRange(start, finish, scope) {\r\n\r\n var i = 0;\r\n for (i = start; i <= finish; i++) {\r\n\r\n var item = {\r\n value: ''+i,\r\n title: '' + i,\r\n liClass: scope.page == i ? scope.activeClass : '',\r\n action: function () {\r\n internalAction(scope, this.value);\r\n }\r\n };\r\n\r\n scope.List.push(item);\r\n }\r\n }\r\n\r\n\r\n // Add Dots ie: 1 2 [...] 10 11 12 [...] 56 57\r\n function addDots(scope) {\r\n scope.List.push({\r\n value: scope.dots\r\n });\r\n }\r\n\r\n\r\n // Add First Pages\r\n function addFirst(scope, next) {\r\n addRange(1, 2, scope);\r\n\r\n // We ignore dots if the next value is 3\r\n // ie: 1 2 [...] 3 4 5 becomes just 1 2 3 4 5\r\n if(next != 3){\r\n addDots(scope);\r\n }\r\n }\r\n\r\n\r\n // Add Last Pages\r\n function addLast(pageCount, scope, prev) {\r\n\r\n // We ignore dots if the previous value is one less that our start range\r\n // ie: 1 2 3 4 [...] 5 6 becomes just 1 2 3 4 5 6\r\n if(prev != pageCount - 2){\r\n addDots(scope);\r\n }\r\n\r\n addRange(pageCount - 1, pageCount, scope);\r\n }\r\n\r\n\r\n\r\n // Main build function\r\n function build(scope, attrs) {\r\n\r\n // Block divide by 0 and empty page size\r\n if (!scope.pageSize || scope.pageSize < 0) {\r\n return;\r\n }\r\n\r\n // Assign scope values\r\n setScopeValues(scope, attrs);\r\n\r\n\r\n // local variables\r\n var start,\r\n size = scope.adjacent * 2,\r\n pageCount = Math.ceil(scope.total / scope.pageSize);\r\n\r\n\r\n // Validate Scope\r\n validateScopeValues(scope, pageCount);\r\n\r\n // Calculate Counts and display\r\n addPrev(scope, pageCount);\r\n addNext(scope, pageCount);\r\n\r\n if (scope.compact) return;\r\n\r\n if (pageCount < (5 + size)) {\r\n\r\n start = 1;\r\n addRange(start, pageCount, scope);\r\n\r\n } else {\r\n\r\n var finish;\r\n\r\n if (scope.page <= (1 + size)) {\r\n\r\n start = 1;\r\n finish = 2 + size + (scope.adjacent - 1);\r\n\r\n addRange(start, finish, scope);\r\n addLast(pageCount, scope, finish);\r\n\r\n } else if (pageCount - size > scope.page && scope.page > size) {\r\n\r\n start = scope.page - scope.adjacent;\r\n finish = scope.page + scope.adjacent;\r\n\r\n addFirst(scope, start);\r\n addRange(start, finish, scope);\r\n addLast(pageCount, scope, finish);\r\n\r\n } else {\r\n\r\n start = pageCount - (1 + size + (scope.adjacent - 1));\r\n finish = pageCount;\r\n\r\n addFirst(scope, start);\r\n addRange(start, finish, scope);\r\n\r\n }\r\n }\r\n //addNext(scope, pageCount);\r\n\r\n }\r\n\r\n // The actual angular directive return\r\n return {\r\n restrict: 'EA',\r\n scope: {\r\n page: '=',\r\n pageSize: '=',\r\n total: '=',\r\n dots: '@',\r\n hideIfEmpty: '@',\r\n ulClass: '@',\r\n activeClass: '@',\r\n adjacent: '@',\r\n compact: '@',\r\n scrollTop: '@',\r\n showPrevNext: '@',\r\n pagingAction: '&'\r\n },\r\n template:\r\n '',\r\n link: function (scope, element, attrs) {\r\n\r\n // Hook in our watched items\r\n scope.$watchCollection('[page,pageSize,total]', function () {\r\n console.log(\"build pager: \"+scope.pageSize);\r\n build(scope, attrs);\r\n });\r\n }\r\n };\r\n });\r\n}\r\n","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crResultRow',['$compile','$interpolate',($compile,$interpolate)=>{\r\n return {\r\n restrict: 'A',\r\n // require: '^crTable',\r\n scope: {\r\n data: '=',\r\n columns:'=',\r\n context:'@'\r\n },\r\n\r\n //template:'
    ',\r\n\r\n controller: ['$scope', '$q', ($scope, $q)=> {\r\n //console.log(\"row controller\");\r\n }],\r\n\r\n compile: function (tElem, tAttrs)\r\n {\r\n return {\r\n post: function (scope, iElem, iAttr, crTable) {\r\n var childScopes = [];\r\n\r\n function render(element: angular.IAugmentedJQuery, scope) {\r\n var column: IColumn, html, i;\r\n\r\n //console.log(\"cr-row...\");\r\n var groupColumnNumbers = [];\r\n var index = 0;\r\n _.each( scope.groups, (group: any) => {\r\n index += parseInt( group.Colspan );\r\n groupColumnNumbers.push( index );\r\n });\r\n\r\n function isBeginOfAColumnGroup ( columnNumber:number ){\r\n return _.contains( groupColumnNumbers, columnNumber );\r\n }\r\n //element.children().remove();\r\n\r\n // if child scopes exist, clean them. would be better to reuse them and to clean unused ones\r\n // should we delete the scopes when the element is destroyed?\r\n if (childScopes) {\r\n for (i = 0; i < childScopes.length; i++) {\r\n childScopes[i].$destroy();\r\n //console.log(\"a child scope to destroy\");\r\n }\r\n childScopes = [];\r\n }\r\n\r\n element.children().remove();\r\n\r\n //scope.filteredColumns=crTable.filteredColumns();\r\n\r\n scope.resultRow = _.reduce( scope.data, (result: any, value: any) => {\r\n //\r\n _.each( value, (v: any, k: string) => {\r\n var col: any = _.findWhere( scope.columns, {Name: k} );\r\n if( col && col.Sumable ) {\r\n if (!result[k]) result[k] = 0;\r\n var t = parseFloat(v) ? parseFloat(v) : 0;\r\n result[k] += t;\r\n result[k] = Math.round( result[k] * 100 ) / 100;\r\n }else{\r\n result[k] = \"\";\r\n\r\n }\r\n })\r\n\r\n return result;\r\n }, { resultRow: true} );\r\n\r\n for (i = 0; i < scope.columns.length; i++) {\r\n // column = scope.filteredColumns[i];\r\n column = scope.columns[i];\r\n if( column.GroupedBy !== true ) {\r\n var s = scope.$new();\r\n childScopes.push(s);\r\n\r\n s[\"value\"] = scope.resultRow[column.Name] || \"\";\r\n s[\"row\"] = scope.resultRow;\r\n s[\"column\"] = column;\r\n s[\"$rowElement\"] = iElem;\r\n\r\n if (!column.Type) column.Type = \"Text\";\r\n //if (!column.DisplayName) column.DisplayName=column.Name;\r\n\r\n if (!column.hasOwnProperty(\"Visible\")) column.Visible = true;\r\n\r\n var td = angular.element(\"\");\r\n if( isBeginOfAColumnGroup( i ) ){\r\n td.addClass(\"first-column-of-group\");\r\n }\r\n\r\n html = $compile(td)(s);\r\n element.append(html);\r\n element.addClass(\"cr-result-row\");\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n // render(iElem, scope);\r\n\r\n scope.$watch(\"data\",(oldVal,newVal)=>{\r\n render(iElem, scope);\r\n });\r\n\r\n }\r\n }\r\n }\r\n }\r\n }]);\r\n}\r\n","module cr.infrastructure\r\n{\r\n angular.module('cr.infrastructure')\r\n .directive('crRow',['$compile','$interpolate',($compile,$interpolate)=>{\r\n return {\r\n restrict: 'A',\r\n // require: '^crTable',\r\n scope: {\r\n row: '=',\r\n columns:'=',\r\n groups:'=',\r\n watchRow:'=?',\r\n context:'@',\r\n //showSelect: '@',\r\n rowAction:'&'\r\n },\r\n\r\n //template:'
    ',\r\n\r\n controller: ['$scope', '$q', ($scope, $q)=> {\r\n //console.log(\"row controller\");\r\n }],\r\n\r\n compile: function (tElem, tAttrs)\r\n {\r\n return {\r\n pre: function (scope, iElem, iAttrs /*,crTable*/ )\r\n {\r\n scope.onRowAction=(action,data,$event)=>{\r\n\r\n\r\n\r\n // if (crTable.onRowAction) {\r\n //console.log(\"table action send \"+action);\r\n // crTable.onRowAction(action,data);\r\n // }\r\n $event.stopPropagation();\r\n\r\n //console.log(\"row action: \"+action+\" \"+angular.toJson(scope.rowAction));\r\n // console.log(\"row action &:\"+scope.rowAction)\r\n if (scope.rowAction) scope.rowAction({action: {action:action.action,data:data}});\r\n\r\n }\r\n },\r\n\r\n post: function (scope, iElem, iAttr, crTable) {\r\n var childScopes = [];\r\n\r\n //console.log(\"cr-row...\");\r\n var groupColumnNumbers = [];\r\n var index = 0;\r\n _.each( scope.groups, (group: any) => {\r\n index += parseInt( group.Colspan );\r\n groupColumnNumbers.push( index );\r\n });\r\n\r\n function isBeginOfAColumnGroup ( columnNumber:number ){\r\n return _.contains( groupColumnNumbers, columnNumber );\r\n }\r\n\r\n\r\n\r\n function render(element, scope) {\r\n var column: IColumn, html, i;\r\n\r\n //element.children().remove();\r\n\r\n // if child scopes exist, clean them. would be better to reuse them and to clean unused ones\r\n // should we delete the scopes when the element is destroyed?\r\n if (childScopes) {\r\n for (i = 0; i < childScopes.length; i++) {\r\n childScopes[i].$destroy();\r\n //console.log(\"a child scope to destroy\");\r\n }\r\n childScopes = [];\r\n }\r\n\r\n element.children().remove();\r\n\r\n //scope.filteredColumns=crTable.filteredColumns();\r\n\r\n for (i = 0; i < scope.columns.length; i++) {\r\n // column = scope.filteredColumns[i];\r\n column = scope.columns[i];\r\n if( column.GroupedBy !== true ) {\r\n var s = scope.$new();\r\n childScopes.push(s);\r\n\r\n s[\"value\"] = scope.row[column.Name];\r\n s[\"row\"] = scope.row;\r\n s[\"column\"] = column;\r\n s[\"$rowElement\"] = iElem;\r\n\r\n if (!column.Type || column.Type=='Time') column.Type = \"Text\";\r\n //if (!column.DisplayName) column.DisplayName=column.Name;\r\n\r\n if (!column.hasOwnProperty(\"Visible\")) column.Visible = true;\r\n\r\n\r\n var td = angular.element(\"\");\r\n\r\n if( isBeginOfAColumnGroup( i ) ){\r\n td.addClass(\"first-column-of-group\");\r\n }\r\n\r\n html = $compile(td)(s);\r\n element.append(html);\r\n }\r\n }\r\n/*\r\n if (scope.showSelect){\r\n var comp=$compile(\"\")(scope);\r\n element.append($compile(\"\")(scope))\r\n\r\n }*/\r\n\r\n if (scope.row[\"sH_RowStyle\"]){\r\n element.addClass(scope.row[\"sH_RowStyle\"]);\r\n }\r\n }\r\n\r\n if (scope.watchRow)\r\n {\r\n scope.$watch(\"row\",(oldVal,newVal)=>{\r\n console.log(\"row watch: \"+newVal);\r\n render(iElem, scope);\r\n });\r\n }\r\n\r\n render(iElem, scope);\r\n }\r\n }\r\n }\r\n }\r\n }]);\r\n}\r\n","module cr.infrastructure\r\n{\r\n class tableCtrl {\r\n\r\n private $log: angular.ILogService;\r\n\r\n showSelect( ){\r\n return this.$scope.showSelect;\r\n }\r\n\r\n filteredColumns( ){\r\n return this.$scope.filteredColumns;\r\n }\r\n\r\n constructor(private $scope: any,private $q: angular.IQService,$element:any,private $timeout) {\r\n\r\n //this.$scope &.messageData=messageData;\r\n //this.$scope.context=messageData.context?messageData.context:$scope.context;\r\n var defaultSettings = {\r\n currentPage: 1,\r\n numPerPage: 50,\r\n enabled: true,\r\n search:true\r\n };\r\n\r\n $scope.filteredRows = [];\r\n $scope.filteredColumns = [];\r\n $scope.groups = [];\r\n\r\n $scope.options = angular.extend({},defaultSettings,$scope.options /*$scope.defaultOptions*/);\r\n\r\n $scope.doFilter = (val) => {\r\n\r\n if (!val) val='';\r\n var result = $scope.filter({value:val});\r\n\r\n // Wrap in $q.when so we're always working with a promise\r\n $q.when(result).then(rows => {\r\n if (!angular.isDefined(rows) || rows==null) $scope.rows=[];\r\n else $scope.rows = rows;\r\n\r\n\r\n });\r\n };\r\n\r\n $scope.setPage = (newPage) => {\r\n if ($scope.options.enabled === true && angular.isArray($scope.rows)) {\r\n var old = $scope.options.currentPage;\r\n $scope.options.currentPage = newPage;\r\n\r\n var begin = (($scope.options.currentPage - 1) * $scope.options.numPerPage),\r\n end = begin + $scope.options.numPerPage;\r\n\r\n //console.log(\"rows?\"+angular.isDefined($scope.rows));\r\n\r\n var result = $scope.rows.slice(begin, end);\r\n\r\n if (result.length > 0) {\r\n $scope.filteredRows = result;\r\n } else {\r\n $scope.options.currentPage = old;\r\n }\r\n } else {\r\n $scope.filteredRows = $scope.rows;\r\n }\r\n\r\n // redo grouping\r\n if( $scope.grouped ) $scope.groupBy( $scope.grouped, true );\r\n };\r\n\r\n $scope.$watch('rows', (rows) => {\r\n // Recalculate pages\r\n $scope.setPage(1);\r\n });\r\n\r\n\r\n $scope.getClass=(col, index)=>{\r\n var toRet=\"\";\r\n if (col.Alignment==1 || col.Alignment=='Right') toRet=toRet+\"text-right \";\r\n if (col.Alignment==2 || col.Alignment=='Center') toRet=toRet+\"text-center \";\r\n\r\n if( $scope.isBeginOfAColumnGroup( index ) ){\r\n toRet += \"first-column-of-group \";\r\n }\r\n\r\n return toRet;\r\n }\r\n\r\n $scope.getGroupClass=( group )=>{\r\n var toRet=\"text-center group-header\";\r\n return toRet;\r\n }\r\n\r\n $scope.sort = (columnName, asc) => {\r\n $scope.rows.sort( (a: any, b:any) => {\r\n var va = _.isNaN( parseFloat( a[columnName] ) ) ? a[columnName] : parseFloat( a[columnName] );\r\n var vb = _.isNaN( parseFloat( b[columnName] ) ) ? b[columnName]: parseFloat( b[columnName] );\r\n\r\n if( b.resultRow === true ) return -1;\r\n if( vb === null ) return -1;\r\n if( va === null ){\r\n return 1;\r\n }\r\n if( typeof va != typeof vb ){\r\n if( typeof vb !== \"number\" ) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n return va <= vb ? 1 : -1;\r\n });\r\n if( asc ) $scope.rows.reverse();\r\n\r\n if( $scope.grouped && columnName !== $scope.grouped ){\r\n _.sortBy( $scope.rows, $scope.grouped);\r\n }\r\n\r\n $scope.setPage(1);\r\n };\r\n\r\n\r\n $scope.grouped = false;\r\n $scope.groupBy = ( columnName, redo: boolean = false ) => {\r\n _.each( $scope.filteredColumns, ( column: IColumn ) => { column.GroupedBy = false } );\r\n if( $scope.grouped === columnName && !redo ){\r\n $scope.grouped = false;\r\n } else {\r\n $scope.grouped = columnName;\r\n $scope.groupedColumn = _.findWhere( $scope.filteredColumns, {Name: columnName } );\r\n if( $scope.groupedColumn ) $scope.groupedColumn.GroupedBy = true;\r\n $scope.groupedRows = _.groupBy( _.reject($scope.filteredRows, (v: any)=> v.resultRow ), columnName );\r\n $scope.rebuild();\r\n }\r\n\r\n\r\n }\r\n\r\n $scope.getGroupColspan = ( groupIndex: number ) => {\r\n var fromColumn: number = 0;\r\n var toColumn: number = 0;\r\n var colSpan: number = $scope.groups[groupIndex].Colspan;\r\n var gr: number[] = _.first( _.pluck( $scope.groups, \"Colspan\"), groupIndex + 1 );\r\n var toColumn = _.reduce( gr, function(memo, num){ return memo + num; }, 0) - 1;\r\n var gr = _.first( gr, gr.length - 1 );\r\n var fromColumn = _.reduce( gr, function(memo, num){ return memo + num; }, 0);\r\n\r\n if( $scope.grouped ){\r\n var groupedIdx = _.findIndex( $scope.filteredColumns, ( col )=>{ return col.Name === $scope.grouped } );\r\n if( groupedIdx <= toColumn && groupedIdx >= fromColumn ) colSpan--;\r\n }\r\n\r\n return colSpan;\r\n }\r\n\r\n $scope.isBeginOfAColumnGroup = ( columnNumber:number ) => {\r\n var groupColumnNumbers = [];\r\n var index = 0;\r\n _.each( $scope.groups, (group: any) => {\r\n index += parseInt( group.Colspan );\r\n groupColumnNumbers.push( index );\r\n });\r\n if( $scope.grouped ){\r\n var groupedIdx = _.findIndex( $scope.filteredColumns, ( col )=>{ return col.Name === $scope.grouped } );\r\n if( groupedIdx <= columnNumber ) columnNumber++;\r\n }\r\n return _.contains( groupColumnNumbers, columnNumber );\r\n }\r\n }\r\n }\r\n\r\n angular.module('cr.infrastructure')\r\n .directive('crTable', [\"$timeout\",($timeout) => {\r\n return {\r\n restrict: 'E',\r\n replace: true,\r\n templateUrl: 'modules/infrastructure/table/templates/crtable.html',\r\n scope: {\r\n options: '=',\r\n showSelect: '=',\r\n rowAction: '&',\r\n columns: '=',\r\n rows: '=',\r\n filter: '&',\r\n context:'@'\r\n },\r\n\r\n controller: ['$scope', '$q', '$element','$timeout', tableCtrl],\r\n controllerAs: \"tableCtrl\",\r\n\r\n link: (scope, el, attr) => {\r\n\r\n var columns;\r\n\r\n if (attr.filter) {\r\n scope.filterProvided = true;\r\n }\r\n\r\n function buildColumns(){\r\n\r\n var toRet={ columns:[],groups:[] };\r\n\r\n if (columns && angular.isArray(columns))\r\n {\r\n if (!scope.width) scope.width=2000;\r\n\r\n var curGroup: IGroup = { Colspan:0,GroupDisplayName:'' };\r\n\r\n columns.forEach(function (oCol) {\r\n var col=oCol;\r\n var weight=0;\r\n if (!isNaN(parseFloat(col.Weight)) && isFinite(col.Weight)) weight=parseInt(col.Weight);\r\n //if (weight>0) console.log(\"col weight: \"+weight);\r\n\r\n if (!angular.isDefined(col.Visible)) col.Visible=true;\r\n\r\n if (col.Visible && weight<=scope.width) {\r\n toRet.columns.push(col);\r\n\r\n // build groups\r\n if (!col.GroupDisplayName) col.GroupDisplayName='';\r\n\r\n //console.log(\"groupDisplayName:\"+curGroup.GroupDisplayName+\" / \"+col.GroupDisplayName);\r\n if (curGroup.GroupDisplayName==col.GroupDisplayName ){\r\n curGroup.Colspan += col.Colspan;\r\n } else {\r\n toRet.groups.push(curGroup);\r\n curGroup = { Colspan:col.Colspan,GroupDisplayName:col.GroupDisplayName };\r\n }\r\n }\r\n });\r\n if (scope.groups.length>0 || curGroup.GroupDisplayName!='') scope.groups.push(curGroup);\r\n }\r\n\r\n return toRet;\r\n }\r\n\r\n\r\n var updating=false;\r\n var debounceUpdate = _.debounce(()=>{\r\n // console.log(\"table width: \"+scope.width+\" (\"+el[0].offsetWidth+\") / \"+scope.filteredRows.length);\r\n\r\n scope.$apply(()=>\r\n {\r\n scope.width=el[0].offsetWidth;\r\n\r\n var cols=buildColumns();\r\n scope.filteredColumns=cols.columns;\r\n scope.showResult = _.contains( _.pluck( scope.filteredColumns, \"Sumable\"), true );\r\n scope.groups = cols.groups;\r\n\r\n //scope.filteredRows=[];\r\n // seems to force ng-repeat watch to be triggered\r\n scope.filteredRows=angular.copy(scope.filteredRows);\r\n\r\n });\r\n\r\n },250);\r\n\r\n // track width\r\n var interval=setInterval(()=> {\r\n\r\n if (angular.isDefined(scope.filteredRows) && !updating && scope.filteredRows.length>0 && (!scope.width || el[0].offsetWidth!=scope.width))\r\n {\r\n scope.width=el[0].offsetWidth;\r\n debounceUpdate();\r\n }\r\n },100);\r\n\r\n el.on('$destroy', function() {\r\n clearInterval(interval);\r\n // console.log(\"stop dom watcher\");\r\n });\r\n\r\n scope.$watch('columns', (cols: IColumn[])=>{\r\n columns=cols;\r\n\r\n // reset all group by things\r\n _.each( columns, ( column: IColumn ) => { column.GroupedBy = false } );\r\n scope.grouped = false;\r\n scope.groupedColumn = null;\r\n scope.groupedRows = null;\r\n\r\n var fcols=buildColumns();\r\n console.log(\"build columns\");\r\n scope.filteredColumns=fcols.columns;\r\n scope.groups=fcols.groups;\r\n });\r\n\r\n scope.rebuild = debounceUpdate;\r\n\r\n if (scope.filterProvided){\r\n $timeout(()=>scope.doFilter(''),0);\r\n }\r\n\r\n }\r\n }\r\n }]);\r\n}\r\n","module cr.infrastructure {\r\n var app = angular.module('cr.infrastructure');\r\n\r\n app.directive('crFocus', ['$timeout', '$rootScope', '$state', function ($timeout, $rootScope, $state) {\r\n\r\n return {\r\n\r\n link: function (scope, elem, attr) {\r\n $timeout(function () {\r\n\r\n $('input[type=text], input[type=password]').filter(function () {\r\n var $this = $(this);\r\n\r\n return $this.val() === '' && $this.is(':visible');\r\n }).first().focus();\r\n\r\n }, 200);\r\n }\r\n };\r\n }]);\r\n\r\n //app.directive('focusOn', ['$timeout', function ($timeout) {\r\n // return function (scope, elem, attr) {\r\n\r\n // scope.$on('focusOn', function (e, name) {\r\n // $timeout(function () {\r\n // if (name === attr.focusOn) {\r\n // elem[0].focus();\r\n // }\r\n // }, 200);\r\n // });\r\n // };\r\n //}]);\r\n\r\n //app.factory('focus', ['$rootScope', '$timeout', function ($rootScope, $timeout) {\r\n // return function (name) {\r\n // $timeout(function () {\r\n // $rootScope.$broadcast('focusOn', name);\r\n // });\r\n // };\r\n //}]);\r\n}","\r\nmodule cr.infrastructure {\r\n var app = angular.module('cr.infrastructure');\r\n\r\n app.directive('crCarousel', cr.infrastructure.carousel.carouselDirectiveFactory());\r\n app.directive('crCarouselItem', cr.infrastructure.carousel.carouselItemDirectiveFactory());\r\n\r\n app.directive('crImageCarousel', cr.infrastructure.carousel.imageCarouselDirectiveFactory());\r\n app.directive('crImageCarouselItem', cr.infrastructure.carousel.imageCarouselItemDirectiveFactory());\r\n\r\n}\r\n","module cr.infrastructure.notification\r\n{\r\n export enum notificationType { Info, Success, Warning, Fatal }\r\n\r\n export class notification {\r\n// public type:notificationType;\r\n// public message:string;\r\n// public id:number;\r\n\r\n constructor(public type:notificationType, public message:string, public id:number,public params?:any) {\r\n //this.id=id;\r\n //this.type=type;\r\n //this.message=message;\r\n }\r\n }\r\n\r\n export interface INotificationService {\r\n addNotification(type:notificationType, message:string,params?:any);\r\n notifications():Array;\r\n editText(message:string,title?:string,val?:string,params?:any);\r\n discardNotification(toDiscard:notification);\r\n showMessage(message:string,title?:string,strButtons?:string,params?:any): angular.IPromise;\r\n clear();\r\n }\r\n\r\n\r\n/*\r\n export enum Button {\r\n Yes = 1,\r\n Confirm = 2,\r\n OK = 4,\r\n No = 8,\r\n Cancel = 16\r\n }*/\r\n\r\n}\r\n","\r\nmodule cr.infrastructure.popup {\r\n\r\n export var popupModule : angular.IModule;\r\n\r\n export interface IPopupService {\r\n open(url:string): angular.IPromise;\r\n }\r\n}\r\n","\r\nangular.module(\"cr.infrastructure.menu\").config(['menuServiceProvider', (menuServiceProvider:cr.infrastructure.IMenuServiceProvider) => {\r\n var items = >[];\r\n var item = {};\r\n var item2 = {};\r\n var item4 = {};\r\n\r\n item.icon = \"fa-home\";\r\n item.name= \"HOME\";\r\n item.state = \"index\";\r\n item.panel = {\r\n html: 'somedescription',\r\n imageUrl: 'img/placeholder.jpg'\r\n };\r\n\r\n items.push(item);\r\n\r\n item2.icon = \"fa-key\";\r\n item2.name = \"SUBITEMSTEST\";\r\n item2.subItems = [];\r\n\r\n item4.icon = \"fa-key\";\r\n item4.name = \"PERMISSION\";\r\n item4.state = 'permission.menu';\r\n item4.subItems = [];\r\n\r\n var item3 = {};\r\n\r\n item3.icon = \"fa-key\";\r\n item3.name = \"some-sub-item\";\r\n item3.state = 'permission.menu';\r\n item3.subItems = [];\r\n\r\n item3.subItems.push({\r\n icon : \"fa-key\",\r\n name : \"more-sub-items\",\r\n state : 'permission.menu'\r\n });\r\n\r\n item3.subItems.push({\r\n icon : \"fa-key\",\r\n name : \"more-sub-items\",\r\n state : 'permission.menu'\r\n });\r\n\r\n item2.subItems.push(item3);\r\n\r\n items.push(item2);\r\n items.push(item4);\r\n\r\n menuServiceProvider.config(items)\r\n\r\n}]);\r\n","module cr.infrastructure.notification {\r\n// Module registrations.\r\n angular.module(\"cr.infrastructure.notification\")\r\n .directive(\"crNotification\", cr.infrastructure.notification.notificationDirectiveFactory());\r\n}\r\n","\r\n// Module registrations.\r\nangular.module(\"cr.infrastructure.scrollspy\", [\"cr.common\"]);\r\n\r\n/*angular.module(\"cr.infrastructure.scrollspy\").run(($rootScope: angular.IRootScopeService, $log:any, $state: any)=> {\r\n var logger = $log.getInstance(\"scrollspy\");\r\n\r\n // Log all change start events.\r\n $rootScope.$on('$locationChangeStart', (evt, newUrl)=> {\r\n logger.debug('LocationChange start triggerd. New url: ' + newUrl);\r\n });\r\n\r\n // Log UI router events.\r\n $rootScope.$on('$stateChangeStart', (event, toState, toParams, fromState, fromParams)=> {\r\n\r\n });\r\n $rootScope.$on('$stateNotFound', (event, unfoundState, fromState, fromParams)=> {\r\n });\r\n $rootScope.$on('$stateChangeSuccess', (event, toState, toParams, fromState, fromParams)=> {\r\n });\r\n $rootScope.$on('$stateChangeError', (event, toState, toParams, fromState, fromParams, error)=> {\r\n });\r\n $rootScope.$on('$viewContentLoading', (event, viewConfig)=> {\r\n });\r\n $rootScope.$on('$viewContentLoaded', (event)=> {\r\n // Todo add logic here\r\n //scrollspyService.refresh();\r\n });\r\n //$rootScope.$state = $state;\r\n}).run(($rootScope, $state, $stateParams) => {\r\n $rootScope.$on('$stateChangeStart', (event, toState, toParams, fromState, fromParams)=> {\r\n\r\n });\r\n});\r\n*/\r\n","module cr.infrastructure.breadcrumb\r\n{\r\n export var breadcrumbModule: angular.IModule;\r\n\r\n //export enum notificationType { Info, Success, Warning, Fatal }\r\n}\r\n","(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/breadcrumb/templates/breadcrumb.html\",\n \"
      1\\\" class=\\\"breadcrumb hidden-xs\\\">
    1. {{step.ncyBreadcrumbLabel}} {{step.ncyBreadcrumbLabel}}
    \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/carousel/templates/carousel-item.html\",\n \"

    {{ quote | tc:$parent.context }}

    \\\"{{ name }}\\\"
    \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/carousel/templates/carousel.html\",\n \"
    \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/carousel/templates/image-carousel-item.html\",\n \"
    \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/carousel/templates/image-carousel.html\",\n \"\");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/menusquare/templates/menusquare-item.html\",\n \"
  • {{sqTitle|tc:context}}

    {{sqTitle|tc:context}}

    {{sqDescription|tc:context}}

  • \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/menusquare/templates/menusquare.html\",\n \"
      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/notification/templates/edittext.html\",\n \"

      {{messageData.title|tc:null:messageData }}

      {{messageData.message|tc:null:messageData }}



      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/notification/templates/message.html\",\n \"

      {{messageData.title|tc:null:messageData }}

      {{messageData.message|tc:null:messageData }}



      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/notification/templates/notification.html\",\n \"
      {{notification.message | tc:null:notification.params }}
      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/progress/templates/progress.html\",\n \"
      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/progress/templates/progressbar.html\",\n \"
      {{prData}}% Complete {{prLabel}}
      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/progress/templates/progresslabel.html\",\n \"{{prLabel}}\");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/scrollspy/templates/cr-scroll-spy.html\",\n \"\");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/table/templates/craction.html\",\n \"\");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/table/templates/crentry.html\",\n \"\");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/table/templates/crmasterslavetable.html\",\n \"
      0\\\">
      {{group.GroupDisplayName|tc}}
      {{ column.DisplayName | tc:context }}
      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/table/templates/crtable.html\",\n \"
      {{ groupedColumn.DisplayName | tc:context }}
      0\\\" class=\\\"table table-striped table-condensed table-hover\\\">0\\\">
      {{group.GroupDisplayName|tc}}
      {{ column.DisplayName | tc:context }}
      {{groupName}}
      \");\n}]);\n})();\n\n(function(module) {\ntry { module = angular.module(\"cr.infrastructure\"); }\ncatch(err) { module = angular.module(\"cr.infrastructure\", []); }\nmodule.run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"modules/infrastructure/table/templates/tablepopup.html\",\n \"

      {{ctrl.popupData.title|tc:null:popupData }}

      {{error}}

      \");\n}]);\n})();\n"],"sourceRoot":"/source/"}