PageSourceSearch

https://classic.ptotoday.com/components/com_store/assets/js/angular-breadcrumbs.min.js?6ab4ec80ceff9

js ptotoday.com collected 2026-09-24 09:25:44 UTC 6,950 bytes, 53 lines download raw bytes

1/*! angular-breadcrumb - v0.4.1-dev-2016-04-12
2 * http://ncuillery.github.io/angular-breadcrumb
3 * Copyright (c) 2016 Nicolas Cuillery; Licensed MIT */
4! function(a, b, c) { "use strict";
5
6    function d(a, c) { return b.equals(a.length, c.length) ? a > c : a.length > c.length }
7
8    function e(a) { var b = a.replace(/\n/g, " ").match(/^([^(]+?)\s*(\((.*)\))?$/); if (!b || 4 !== b.length) throw new Error("Invalid state ref '" + a + "'"); return { state: b[1], paramExpr: b[3] || null } }
9
10    function f(a, b, d, e) { var f = k[a];
11        f !== c && f(), f = b.$on(d, e), k[a] = f }
12
13    function g() { var a = { prefixStateName: null, template: "bootstrap3", templateUrl: null, templateLast: "default", templateLastUrl: null, includeAbstract: !1 };
14        this.setOptions = function(c) { b.extend(a, c) }, this.$get = ["$state", "$stateParams", "$rootScope", function(b, g, h) { var i = h;
15            f("$Breadcrumb.$viewContentLoaded", h, "$viewContentLoaded", function(a) {!a.targetScope.ncyBreadcrumbIgnore && d(a.targetScope.$id, i.$id) && (i = a.targetScope) }); var j = function(a) { var b = a.parent || (/^(.+)\.[^.]+$/.exec(a.name) || [])[1],
16                        c = "object" == typeof b; return c ? b.name : b },
17                k = function(c, d) { for (var f, h, j = e(d), k = !1, l = !1, m = 0, n = c.length; n > m; m += 1)
18                        if (c[m].name === j.state) return;
19                    f = b.get(j.state), f.ncyBreadcrumb && (f.ncyBreadcrumb.force && (k = !0), f.ncyBreadcrumb.skip && (l = !0)), f["abstract"] && !a.includeAbstract && !k || l || (j.paramExpr && (h = i.$eval(j.paramExpr)), f.ncyBreadcrumbLink = b.href(j.state, h || g || {}), f.ncyBreadcrumbStateRef = d, c.unshift(f)) },
20                l = function(a) { var c = e(a),
21                        d = b.get(c.state); if (d.ncyBreadcrumb && d.ncyBreadcrumb.parent) { var f = "function" == typeof d.ncyBreadcrumb.parent,
22                            g = f ? d.ncyBreadcrumb.parent(i) : d.ncyBreadcrumb.parent; if (g) return g } return j(d) }; return { getTemplate: function(b) { return a.templateUrl ? null : b[a.template] ? b[a.template] : a.template }, getTemplateUrl: function() { return a.templateUrl }, getTemplateLast: function(b) { return a.templateLastUrl ? null : b[a.templateLast] ? b[a.templateLast] : a.templateLast }, getTemplateLastUrl: function() { return a.templateLastUrl }, getStatesChain: function(c) { for (var d = [], e = b.$current.self.name; e; e = l(e))
23                        if (k(d, e), c && d.length) return d;
24                    return a.prefixStateName && k(d, a.prefixStateName), d }, getLastStep: function() { var a = this.getStatesChain(!0); return a.length ? a[0] : c }, $getLastViewScope: function() { return i } } }] }
25
26    function h(a, c, d) { var e = { bootstrap2: '<ul class="breadcrumb"><li ng-repeat="step in steps" ng-switch="$last || !!step.abstract" ng-class="{active: $last}"><a ng-switch-when="false" href="{{step.ncyBreadcrumbLink}}">{{step.ncyBreadcrumbLabel}}</a><span ng-switch-when="true">{{step.ncyBreadcrumbLabel}}</span><span class="divider" ng-hide="$last">/</span></li></ul>', bootstrap3: '<ol class="breadcrumb"><li ng-repeat="step in steps" ng-class="{active: $last}" ng-switch="$last || !!step.abstract"><a ng-switch-when="false" href="{{step.ncyBreadcrumbLink}}">{{step.ncyBreadcrumbLabel}}</a><span ng-switch-when="true">{{step.ncyBreadcrumbLabel}}</span></li></ol>' }; return { restrict: "AE", replace: !0, scope: {}, template: c.getTemplate(e), templateUrl: c.getTemplateUrl(), link: { post: function(e) { var g = [],
27                        h = function() { n(g), g = []; var d = c.$getLastViewScope();
28                            e.steps = c.getStatesChain(), b.forEach(e.steps, function(b) { if (b.ncyBreadcrumb && b.ncyBreadcrumb.label) { var c = a(b.ncyBreadcrumb.label);
29                                    b.ncyBreadcrumbLabel = c(d), m(g, c, d, b) } else b.ncyBreadcrumbLabel = b.name }) };
30                    f("BreadcrumbDirective.$viewContentLoaded", d, "$viewContentLoaded", function(a) { a.targetScope.ncyBreadcrumbIgnore || h() }), h() } } } }
31
32    function i(a, b, c) { var d = { "default": "{{ncyBreadcrumbLabel}}" }; return { restrict: "A", scope: {}, template: b.getTemplateLast(d), templateUrl: b.getTemplateLastUrl(), compile: function(d, e) { var g = d.attr(e.$attr.ncyBreadcrumbLast); return g && d.html(g), { post: function(d) { var e = [],
33                            g = function() { n(e), e = []; var c = b.$getLastViewScope(),
34                                    f = b.getLastStep(); if (f)
35                                    if (d.ncyBreadcrumbLink = f.ncyBreadcrumbLink, f.ncyBreadcrumb && f.ncyBreadcrumb.label) { var g = a(f.ncyBreadcrumb.label);
36                                        d.ncyBreadcrumbLabel = g(c), m(e, g, c, d) } else d.ncyBreadcrumbLabel = f.name };
37                        f("BreadcrumbLastDirective.$viewContentLoaded", c, "$viewContentLoaded", function(a) { a.targetScope.ncyBreadcrumbIgnore || g() }), g() } } } } }
38
39    function j(a, c, d) { return { restrict: "A", scope: {}, template: "{{ncyBreadcrumbChain}}", compile: function(e, g) { var h = e.attr(g.$attr.ncyBreadcrumbText);
40                h && e.html(h); var i = e.attr(g.$attr.ncyBreadcrumbTextSeparator) || " / "; return { post: function(e) { var g = [],
41                            h = function(a, c, d) { b.forEach(l(c), function(b) { var c = d.$watch(b, function(a, b) { a !== b && j() });
42                                    a.push(c) }) },
43                            j = function() { n(g), g = []; var d = c.$getLastViewScope(),
44                                    f = c.getStatesChain(),
45                                    j = [];
46                                b.forEach(f, function(b) { if (b.ncyBreadcrumb && b.ncyBreadcrumb.label) { var c = a(b.ncyBreadcrumb.label);
47                                        j.push(c(d)), h(g, c, d) } else j.push(b.name) }), e.ncyBreadcrumbChain = j.join(i) };
48                        f("BreadcrumbTextDirective.$viewContentLoaded", d, "$viewContentLoaded", function(a) { a.targetScope.ncyBreadcrumbIgnore || j() }), j() } } } } } var k = {},
49        l = function(a) { if (a.expressions) return a.expressions; var c = []; return b.forEach(a.parts, function(a) { b.isFunction(a) && c.push(a.exp) }), c },
50        m = function(a, c, d, e) { b.forEach(l(c), function(b) { var f = d.$watch(b, function() { e.ncyBreadcrumbLabel = c(d) });
51                a.push(f) }) },
52        n = function(a) { b.forEach(a, function(a) { a() }) };
53    h.$inject = ["$interpolate", "$breadcrumb", "$rootScope"], i.$inject = ["$interpolate", "$breadcrumb", "$rootScope"], j.$inject = ["$interpolate", "$breadcrumb", "$rootScope"], b.module("ncy-angular-breadcrumb", ["ui.router.state"]).provider("$breadcrumb", g).directive("ncyBreadcrumb", h).directive("ncyBreadcrumbLast", i).directive("ncyBreadcrumbText", j) }(window, window.angular);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.