/
angular-breadcrumb.min.js
4 lines (4 loc) · 2.61 KB
/
angular-breadcrumb.min.js
1
2
3
4
/*! angular-breadcrumb - v0.1.0 - 2014-05-01
* https://github.com/ncuillery/angular-breadcrumb
* Copyright (c) 2014 Nicolas Cuillery; Licensed MIT */
!function(a,b){function c(a,c){return b.equals(a.length,c.length)?a>c:a.length>c.length}function d(){var a={prefixStateName:null,template:"bootstrap3",templateUrl:null};this.setOptions=function(c){b.extend(a,c)},this.$get=["$state",function(c){var d=function(a,c){var d=e(a);return b.isDefined(d.data)&&b.isDefined(d.data[c])&&b.equals(a.data[c],d.data[c])},e=function(a){if(b.isDefined(a.parent))return c.get(a.parent);var d=/^(.+)\.[^.]+$/.exec(a.name);return d?c.get(d[1]):null},f=function(a,c,d){var e=!1;return b.forEach(a,function(a){!e&&b.equals(a,c)&&(e=!0)}),e||c.abstract?!1:(d?a.splice(1,0,c):a.unshift(c),!0)},g=function(a){return b.isDefined(a.data)&&b.isDefined(a.data.ncyBreadcrumbParent)&&!d(a,"ncyBreadcrumbParent")?c.get(a.data.ncyBreadcrumbParent):e(a)};return{getTemplate:function(b){return a.templateUrl?null:b[a.template]?b[a.template]:a.template},getTemplateUrl:function(){return a.templateUrl},getStatesChain:function(){var d=[],e=!1;if(a.prefixStateName){var h=c.get(a.prefixStateName);if(!h)throw'Bad configuration : prefixState "'+a.prefixStateName+'" unknown';var i=b.extend(h,{ncyBreadcrumbLink:c.href(h)});e=f(d,i,e)}var j=c.$current.self;do{var k=b.extend(j,{ncyBreadcrumbLink:c.href(j.name)});f(d,k,e),j=g(j)}while(j&&""!==j.name);return d}}}]}function e(a,d,e){return this.$$templates={bootstrap2:'<ul class="breadcrumb"><li ng-repeat="step in steps | limitTo:(steps.length-1)"><a href="{{step.ncyBreadcrumbLink}}">{{step.ncyBreadcrumbLabel}}</a> <span class="divider">/</span></li><li ng-repeat="step in steps | limitTo:-1" class="active"><span>{{step.ncyBreadcrumbLabel}}</span></li></ul>',bootstrap3:'<ol class="breadcrumb"><li ng-repeat="step in steps | limitTo:(steps.length-1)"><a href="{{step.ncyBreadcrumbLink}}">{{step.ncyBreadcrumbLabel}}</a> </li><li ng-repeat="step in steps | limitTo:-1" class="active"><span>{{step.ncyBreadcrumbLabel}}</span></li></ol>'},{restrict:"AE",replace:!0,scope:{},template:d.getTemplate(this.$$templates),templateUrl:d.getTemplateUrl(),link:{post:function(f){var g;e.$on("$viewContentLoaded",function(e){(!g||c(e.targetScope.$id,g))&&(g=e.targetScope.$id,f.steps=d.getStatesChain(),b.forEach(f.steps,function(b){if(b.data&&b.data.ncyBreadcrumbLabel){var c=a(b.data.ncyBreadcrumbLabel);b.ncyBreadcrumbLabel=c(e.targetScope)}else b.ncyBreadcrumbLabel=b.name}))})}}}}e.$inject=["$interpolate","$breadcrumb","$rootScope"],b.module("ncy-angular-breadcrumb",["ui.router.state"]).provider("$breadcrumb",d).directive("ncyBreadcrumb",e)}(window,window.angular);