mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-03-26 08:32:44 +00:00
6015 lines
187 KiB
JavaScript
6015 lines
187 KiB
JavaScript
/**
|
|
* State-based routing for AngularJS 1.x
|
|
* NOTICE: This monolithic bundle also bundles the @uirouter/core code.
|
|
* This causes it to be incompatible with plugins that depend on @uirouter/core.
|
|
* We recommend switching to the ui-router-core.js and ui-router-angularjs.js bundles instead.
|
|
* For more information, see https://ui-router.github.io/blog/uirouter-for-angularjs-umd-bundles
|
|
* @version v1.0.17
|
|
* @link https://ui-router.github.io
|
|
* @license MIT License, http://www.opensource.org/licenses/MIT
|
|
*/
|
|
!(function(t, e) {
|
|
'object' == typeof exports && 'undefined' != typeof module
|
|
? e(exports, require('angular'))
|
|
: 'function' == typeof define && define.amd
|
|
? define(['exports', 'angular'], e)
|
|
: e((t['@uirouter/angularjs'] = {}), t.angular);
|
|
})(this, function(t, e) {
|
|
'use strict';
|
|
var r = angular,
|
|
n = e && e.module ? e : r;
|
|
function i(t) {
|
|
var e = [].slice.apply(arguments, [1]),
|
|
r = t.length;
|
|
return (function e(n) {
|
|
return n.length >= r
|
|
? t.apply(null, n)
|
|
: function() {
|
|
return e(n.concat([].slice.apply(arguments)));
|
|
};
|
|
})(e);
|
|
}
|
|
function o() {
|
|
var t = arguments,
|
|
e = t.length - 1;
|
|
return function() {
|
|
for (var r = e, n = t[e].apply(this, arguments); r--; ) n = t[r].call(this, n);
|
|
return n;
|
|
};
|
|
}
|
|
function a() {
|
|
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
|
|
return o.apply(null, [].slice.call(arguments).reverse());
|
|
}
|
|
var u = function(t) {
|
|
return function(e) {
|
|
return e && e[t];
|
|
};
|
|
},
|
|
s = i(function(t, e, r) {
|
|
return r && r[t] === e;
|
|
}),
|
|
c = function(t) {
|
|
return a.apply(null, t.split('.').map(u));
|
|
},
|
|
f = function(t) {
|
|
return function() {
|
|
for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
|
|
return !t.apply(null, e);
|
|
};
|
|
};
|
|
function l(t, e) {
|
|
return function() {
|
|
for (var r = [], n = 0; n < arguments.length; n++) r[n] = arguments[n];
|
|
return t.apply(null, r) && e.apply(null, r);
|
|
};
|
|
}
|
|
function h(t, e) {
|
|
return function() {
|
|
for (var r = [], n = 0; n < arguments.length; n++) r[n] = arguments[n];
|
|
return t.apply(null, r) || e.apply(null, r);
|
|
};
|
|
}
|
|
var p = function(t) {
|
|
return function(e) {
|
|
return e.reduce(function(e, r) {
|
|
return e && !!t(r);
|
|
}, !0);
|
|
};
|
|
},
|
|
v = function(t) {
|
|
return function(e) {
|
|
return e.reduce(function(e, r) {
|
|
return e || !!t(r);
|
|
}, !1);
|
|
};
|
|
},
|
|
d = function(t) {
|
|
return function(e) {
|
|
return (null != e && e.constructor === t) || e instanceof t;
|
|
};
|
|
},
|
|
m = function(t) {
|
|
return function(e) {
|
|
return t === e;
|
|
};
|
|
},
|
|
y = function(t) {
|
|
return function() {
|
|
return t;
|
|
};
|
|
};
|
|
function g(t, e) {
|
|
return function(r) {
|
|
return r[t].apply(r, e);
|
|
};
|
|
}
|
|
function _(t) {
|
|
return function(e) {
|
|
for (var r = 0; r < t.length; r++) if (t[r][0](e)) return t[r][1](e);
|
|
};
|
|
}
|
|
var w = (function() {
|
|
function t(t) {
|
|
(this.text = t), (this.glob = t.split('.'));
|
|
var e = this.text
|
|
.split('.')
|
|
.map(function(t) {
|
|
return '**' === t ? '(?:|(?:\\.[^.]*)*)' : '*' === t ? '\\.[^.]*' : '\\.' + t;
|
|
})
|
|
.join('');
|
|
this.regexp = new RegExp('^' + e + '$');
|
|
}
|
|
return (
|
|
(t.is = function(t) {
|
|
return !!/[!,*]+/.exec(t);
|
|
}),
|
|
(t.fromString = function(e) {
|
|
return t.is(e) ? new t(e) : null;
|
|
}),
|
|
(t.prototype.matches = function(t) {
|
|
return this.regexp.test('.' + t);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
$ = (function() {
|
|
function t(e) {
|
|
return t.create(e || {});
|
|
}
|
|
return (
|
|
(t.create = function(e) {
|
|
e = t.isStateClass(e) ? new e() : e;
|
|
var r = K(K(e, t.prototype));
|
|
return (
|
|
(e.$$state = function() {
|
|
return r;
|
|
}),
|
|
(r.self = e),
|
|
(r.__stateObjectCache = { nameGlob: w.fromString(r.name) }),
|
|
r
|
|
);
|
|
}),
|
|
(t.prototype.is = function(t) {
|
|
return this === t || this.self === t || this.fqn() === t;
|
|
}),
|
|
(t.prototype.fqn = function() {
|
|
if (!(this.parent && this.parent instanceof this.constructor)) return this.name;
|
|
var t = this.parent.fqn();
|
|
return t ? t + '.' + this.name : this.name;
|
|
}),
|
|
(t.prototype.root = function() {
|
|
return (this.parent && this.parent.root()) || this;
|
|
}),
|
|
(t.prototype.parameters = function(t) {
|
|
return (
|
|
((t = it(t, { inherit: !0, matchingKeys: null })).inherit && this.parent && this.parent.parameters()) ||
|
|
[]
|
|
)
|
|
.concat(vt(this.params))
|
|
.filter(function(e) {
|
|
return !t.matchingKeys || t.matchingKeys.hasOwnProperty(e.id);
|
|
});
|
|
}),
|
|
(t.prototype.parameter = function(t, e) {
|
|
return (
|
|
void 0 === e && (e = {}),
|
|
(this.url && this.url.parameter(t, e)) ||
|
|
lt(vt(this.params), s('id', t)) ||
|
|
(e.inherit && this.parent && this.parent.parameter(t))
|
|
);
|
|
}),
|
|
(t.prototype.toString = function() {
|
|
return this.fqn();
|
|
}),
|
|
(t.isStateClass = function(t) {
|
|
return P(t) && !0 === t.__uiRouterState;
|
|
}),
|
|
(t.isState = function(t) {
|
|
return x(t.__stateObjectCache);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
S = Object.prototype.toString,
|
|
b = function(t) {
|
|
return function(e) {
|
|
return typeof e === t;
|
|
};
|
|
},
|
|
R = b('undefined'),
|
|
E = f(R),
|
|
C = function(t) {
|
|
return null === t;
|
|
},
|
|
T = h(C, R),
|
|
P = b('function'),
|
|
k = b('number'),
|
|
O = b('string'),
|
|
x = function(t) {
|
|
return null !== t && 'object' == typeof t;
|
|
},
|
|
V = Array.isArray,
|
|
I = function(t) {
|
|
return '[object Date]' === S.call(t);
|
|
},
|
|
j = function(t) {
|
|
return '[object RegExp]' === S.call(t);
|
|
},
|
|
A = $.isState;
|
|
function H(t) {
|
|
if (V(t) && t.length) {
|
|
var e = t.slice(0, -1),
|
|
r = t.slice(-1);
|
|
return !(e.filter(f(O)).length || r.filter(f(P)).length);
|
|
}
|
|
return P(t);
|
|
}
|
|
var D = l(x, a(u('then'), P)),
|
|
q = function(t) {
|
|
return function() {
|
|
throw new Error(t + '(): No coreservices implementation for UI-Router is loaded.');
|
|
};
|
|
},
|
|
N = { $q: void 0, $injector: void 0 },
|
|
F =
|
|
('object' == typeof self && self.self === self && self) ||
|
|
('object' == typeof global && global.global === global && global) ||
|
|
void 0,
|
|
U = F.angular || {},
|
|
L = U.fromJson || JSON.parse.bind(JSON),
|
|
M = U.toJson || JSON.stringify.bind(JSON),
|
|
B =
|
|
U.forEach ||
|
|
function(t, e, r) {
|
|
if (V(t)) return t.forEach(e, r);
|
|
Object.keys(t).forEach(function(r) {
|
|
return e(t[r], r);
|
|
});
|
|
},
|
|
G = Object.assign || xt,
|
|
W = U.equals || Vt;
|
|
function z(t) {
|
|
return t;
|
|
}
|
|
function J() {}
|
|
function Q(t, e, r, n, i) {
|
|
void 0 === i && (i = !1);
|
|
var o = function(e) {
|
|
return t()[e].bind(r());
|
|
};
|
|
return (n = n || Object.keys(t())).reduce(function(t, r) {
|
|
var n;
|
|
return (
|
|
(t[r] = i
|
|
? ((n = r),
|
|
function() {
|
|
return (e[n] = o(n)), e[n].apply(null, arguments);
|
|
})
|
|
: o(r)),
|
|
t
|
|
);
|
|
}, e);
|
|
}
|
|
var K = function(t, e) {
|
|
return G(Object.create(t), e);
|
|
},
|
|
Y = i(Z);
|
|
function Z(t, e) {
|
|
return -1 !== t.indexOf(e);
|
|
}
|
|
var X = i(tt);
|
|
function tt(t, e) {
|
|
var r = t.indexOf(e);
|
|
return r >= 0 && t.splice(r, 1), t;
|
|
}
|
|
var et = i(rt);
|
|
function rt(t, e) {
|
|
return t.push(e), e;
|
|
}
|
|
var nt = function(t) {
|
|
return t.slice().forEach(function(e) {
|
|
'function' == typeof e && e(), X(t, e);
|
|
});
|
|
};
|
|
function it(t) {
|
|
for (var e = [], r = 1; r < arguments.length; r++) e[r - 1] = arguments[r];
|
|
var n = e.concat({}).reverse(),
|
|
i = G.apply(null, n);
|
|
return G({}, i, ut(t || {}, Object.keys(i)));
|
|
}
|
|
var ot = function(t, e) {
|
|
return G(t, e);
|
|
};
|
|
function at(t, e) {
|
|
var r = [];
|
|
for (var n in t.path) {
|
|
if (t.path[n] !== e.path[n]) break;
|
|
r.push(t.path[n]);
|
|
}
|
|
return r;
|
|
}
|
|
function ut(t, e) {
|
|
var r = {};
|
|
for (var n in t) -1 !== e.indexOf(n) && (r[n] = t[n]);
|
|
return r;
|
|
}
|
|
function st(t, e) {
|
|
return Object.keys(t)
|
|
.filter(f(Y(e)))
|
|
.reduce(function(e, r) {
|
|
return (e[r] = t[r]), e;
|
|
}, {});
|
|
}
|
|
function ct(t, e) {
|
|
return pt(t, u(e));
|
|
}
|
|
function ft(t, e) {
|
|
var r = V(t),
|
|
n = r ? [] : {},
|
|
i = r
|
|
? function(t) {
|
|
return n.push(t);
|
|
}
|
|
: function(t, e) {
|
|
return (n[e] = t);
|
|
};
|
|
return (
|
|
B(t, function(t, r) {
|
|
e(t, r) && i(t, r);
|
|
}),
|
|
n
|
|
);
|
|
}
|
|
function lt(t, e) {
|
|
var r;
|
|
return (
|
|
B(t, function(t, n) {
|
|
r || (e(t, n) && (r = t));
|
|
}),
|
|
r
|
|
);
|
|
}
|
|
var ht = pt;
|
|
function pt(t, e, r) {
|
|
return (
|
|
(r = r || (V(t) ? [] : {})),
|
|
B(t, function(t, n) {
|
|
return (r[n] = e(t, n));
|
|
}),
|
|
r
|
|
);
|
|
}
|
|
var vt = function(t) {
|
|
return Object.keys(t).map(function(e) {
|
|
return t[e];
|
|
});
|
|
},
|
|
dt = function(t, e) {
|
|
return t && e;
|
|
},
|
|
mt = function(t, e) {
|
|
return t || e;
|
|
},
|
|
yt = function(t, e) {
|
|
return t.concat(e);
|
|
},
|
|
gt = function(t, e) {
|
|
return V(e) ? t.concat(e.reduce(gt, [])) : _t(t, e);
|
|
};
|
|
function _t(t, e) {
|
|
return t.push(e), t;
|
|
}
|
|
var wt = function(t, e) {
|
|
return Y(t, e) ? t : _t(t, e);
|
|
},
|
|
$t = function(t) {
|
|
return t.reduce(yt, []);
|
|
},
|
|
St = function(t) {
|
|
return t.reduce(gt, []);
|
|
},
|
|
bt = Et,
|
|
Rt = Et;
|
|
function Et(t, e) {
|
|
return (
|
|
void 0 === e && (e = 'assert failure'),
|
|
function(r) {
|
|
var n = t(r);
|
|
if (!n) throw new Error(P(e) ? e(r) : e);
|
|
return n;
|
|
}
|
|
);
|
|
}
|
|
var Ct = function(t) {
|
|
return Object.keys(t).map(function(e) {
|
|
return [e, t[e]];
|
|
});
|
|
};
|
|
function Tt() {
|
|
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
|
|
if (0 === t.length) return [];
|
|
for (
|
|
var r = t.reduce(function(t, e) {
|
|
return Math.min(e.length, t);
|
|
}, 9007199254740991),
|
|
n = [],
|
|
i = function(e) {
|
|
switch (t.length) {
|
|
case 1:
|
|
n.push([t[0][e]]);
|
|
break;
|
|
case 2:
|
|
n.push([t[0][e], t[1][e]]);
|
|
break;
|
|
case 3:
|
|
n.push([t[0][e], t[1][e], t[2][e]]);
|
|
break;
|
|
case 4:
|
|
n.push([t[0][e], t[1][e], t[2][e], t[3][e]]);
|
|
break;
|
|
default:
|
|
n.push(
|
|
t.map(function(t) {
|
|
return t[e];
|
|
}),
|
|
);
|
|
}
|
|
},
|
|
o = 0;
|
|
o < r;
|
|
o++
|
|
)
|
|
i(o);
|
|
return n;
|
|
}
|
|
function Pt(t, e) {
|
|
var r, n;
|
|
if ((V(e) && ((r = e[0]), (n = e[1])), !O(r))) throw new Error('invalid parameters to applyPairs');
|
|
return (t[r] = n), t;
|
|
}
|
|
function kt(t) {
|
|
return (t.length && t[t.length - 1]) || void 0;
|
|
}
|
|
function Ot(t, e) {
|
|
return (
|
|
e &&
|
|
Object.keys(e).forEach(function(t) {
|
|
return delete e[t];
|
|
}),
|
|
e || (e = {}),
|
|
G(e, t)
|
|
);
|
|
}
|
|
function xt(t) {
|
|
for (var e = 1; e < arguments.length; e++) {
|
|
var r = arguments[e];
|
|
if (r) for (var n = Object.keys(r), i = 0; i < n.length; i++) t[n[i]] = r[n[i]];
|
|
}
|
|
return t;
|
|
}
|
|
function Vt(t, e) {
|
|
if (t === e) return !0;
|
|
if (null === t || null === e) return !1;
|
|
if (t != t && e != e) return !0;
|
|
var r = typeof t;
|
|
if (r !== typeof e || 'object' !== r) return !1;
|
|
var n,
|
|
i,
|
|
o = [t, e];
|
|
if (p(V)(o))
|
|
return (
|
|
(i = e),
|
|
(n = t).length === i.length &&
|
|
Tt(n, i).reduce(function(t, e) {
|
|
return t && Vt(e[0], e[1]);
|
|
}, !0)
|
|
);
|
|
if (p(I)(o)) return t.getTime() === e.getTime();
|
|
if (p(j)(o)) return t.toString() === e.toString();
|
|
if (p(P)(o)) return !0;
|
|
if (
|
|
[P, V, I, j].map(v).reduce(function(t, e) {
|
|
return t || !!e(o);
|
|
}, !1)
|
|
)
|
|
return !1;
|
|
var a = {};
|
|
for (var u in t) {
|
|
if (!Vt(t[u], e[u])) return !1;
|
|
a[u] = !0;
|
|
}
|
|
for (var u in e) if (!a[u]) return !1;
|
|
return !0;
|
|
}
|
|
var It,
|
|
jt = function(t) {
|
|
return (
|
|
t.catch(function(t) {
|
|
return 0;
|
|
}) && t
|
|
);
|
|
},
|
|
At = function(t) {
|
|
return jt(N.$q.reject(t));
|
|
},
|
|
Ht = (function() {
|
|
function t(t, e) {
|
|
void 0 === t && (t = []),
|
|
void 0 === e && (e = null),
|
|
(this._items = t),
|
|
(this._limit = e),
|
|
(this._evictListeners = []),
|
|
(this.onEvict = et(this._evictListeners));
|
|
}
|
|
return (
|
|
(t.prototype.enqueue = function(t) {
|
|
var e = this._items;
|
|
return e.push(t), this._limit && e.length > this._limit && this.evict(), t;
|
|
}),
|
|
(t.prototype.evict = function() {
|
|
var t = this._items.shift();
|
|
return (
|
|
this._evictListeners.forEach(function(e) {
|
|
return e(t);
|
|
}),
|
|
t
|
|
);
|
|
}),
|
|
(t.prototype.dequeue = function() {
|
|
if (this.size()) return this._items.splice(0, 1)[0];
|
|
}),
|
|
(t.prototype.clear = function() {
|
|
var t = this._items;
|
|
return (this._items = []), t;
|
|
}),
|
|
(t.prototype.size = function() {
|
|
return this._items.length;
|
|
}),
|
|
(t.prototype.remove = function(t) {
|
|
var e = this._items.indexOf(t);
|
|
return e > -1 && this._items.splice(e, 1)[0];
|
|
}),
|
|
(t.prototype.peekTail = function() {
|
|
return this._items[this._items.length - 1];
|
|
}),
|
|
(t.prototype.peekHead = function() {
|
|
if (this.size()) return this._items[0];
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
((It = t.RejectType || (t.RejectType = {}))[(It.SUPERSEDED = 2)] = 'SUPERSEDED'),
|
|
(It[(It.ABORTED = 3)] = 'ABORTED'),
|
|
(It[(It.INVALID = 4)] = 'INVALID'),
|
|
(It[(It.IGNORED = 5)] = 'IGNORED'),
|
|
(It[(It.ERROR = 6)] = 'ERROR');
|
|
var Dt = 0,
|
|
qt = (function() {
|
|
function e(t, e, r) {
|
|
(this.$id = Dt++), (this.type = t), (this.message = e), (this.detail = r);
|
|
}
|
|
return (
|
|
(e.isRejectionPromise = function(t) {
|
|
return t && 'function' == typeof t.then && d(e)(t._transitionRejection);
|
|
}),
|
|
(e.superseded = function(r, n) {
|
|
var i = new e(t.RejectType.SUPERSEDED, 'The transition has been superseded by a different transition', r);
|
|
return n && n.redirected && (i.redirected = !0), i;
|
|
}),
|
|
(e.redirected = function(t) {
|
|
return e.superseded(t, { redirected: !0 });
|
|
}),
|
|
(e.invalid = function(r) {
|
|
return new e(t.RejectType.INVALID, 'This transition is invalid', r);
|
|
}),
|
|
(e.ignored = function(r) {
|
|
return new e(t.RejectType.IGNORED, 'The transition was ignored', r);
|
|
}),
|
|
(e.aborted = function(r) {
|
|
return new e(t.RejectType.ABORTED, 'The transition has been aborted', r);
|
|
}),
|
|
(e.errored = function(r) {
|
|
return new e(t.RejectType.ERROR, 'The transition errored', r);
|
|
}),
|
|
(e.normalize = function(t) {
|
|
return d(e)(t) ? t : e.errored(t);
|
|
}),
|
|
(e.prototype.toString = function() {
|
|
var t,
|
|
e = (t = this.detail) && t.toString !== Object.prototype.toString ? t.toString() : ke(t);
|
|
return (
|
|
'Transition Rejection($id: ' +
|
|
this.$id +
|
|
' type: ' +
|
|
this.type +
|
|
', message: ' +
|
|
this.message +
|
|
', detail: ' +
|
|
e +
|
|
')'
|
|
);
|
|
}),
|
|
(e.prototype.toPromise = function() {
|
|
return G(At(this), { _transitionRejection: this });
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function Nt(t) {
|
|
if (!t) return 'ui-view (defunct)';
|
|
var e = t.creationContext ? t.creationContext.name || '(root)' : '(none)';
|
|
return '[ui-view#' + t.id + ' ' + t.$type + ':' + t.fqn + ' (' + t.name + '@' + e + ')]';
|
|
}
|
|
function Ft(e) {
|
|
return k(e) ? t.Category[e] : t.Category[t.Category[e]];
|
|
}
|
|
var Ut,
|
|
Lt = Function.prototype.bind.call(console.log, console),
|
|
Mt = P(console.table) ? console.table.bind(console) : Lt.bind(console);
|
|
((Ut = t.Category || (t.Category = {}))[(Ut.RESOLVE = 0)] = 'RESOLVE'),
|
|
(Ut[(Ut.TRANSITION = 1)] = 'TRANSITION'),
|
|
(Ut[(Ut.HOOK = 2)] = 'HOOK'),
|
|
(Ut[(Ut.UIVIEW = 3)] = 'UIVIEW'),
|
|
(Ut[(Ut.VIEWCONFIG = 4)] = 'VIEWCONFIG');
|
|
var Bt,
|
|
Gt,
|
|
Wt = c('$id'),
|
|
zt = c('router.$id'),
|
|
Jt = function(t) {
|
|
return 'Transition #' + Wt(t) + '-' + zt(t);
|
|
},
|
|
Qt = (function() {
|
|
function e() {
|
|
(this._enabled = {}), (this.approximateDigests = 0);
|
|
}
|
|
return (
|
|
(e.prototype._set = function(e, r) {
|
|
var n = this;
|
|
r.length ||
|
|
(r = Object.keys(t.Category)
|
|
.map(function(t) {
|
|
return parseInt(t, 10);
|
|
})
|
|
.filter(function(t) {
|
|
return !isNaN(t);
|
|
})
|
|
.map(function(e) {
|
|
return t.Category[e];
|
|
})),
|
|
r.map(Ft).forEach(function(t) {
|
|
return (n._enabled[t] = e);
|
|
});
|
|
}),
|
|
(e.prototype.enable = function() {
|
|
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
|
|
this._set(!0, t);
|
|
}),
|
|
(e.prototype.disable = function() {
|
|
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
|
|
this._set(!1, t);
|
|
}),
|
|
(e.prototype.enabled = function(t) {
|
|
return !!this._enabled[Ft(t)];
|
|
}),
|
|
(e.prototype.traceTransitionStart = function(e) {
|
|
this.enabled(t.Category.TRANSITION) && console.log(Jt(e) + ': Started -> ' + ke(e));
|
|
}),
|
|
(e.prototype.traceTransitionIgnored = function(e) {
|
|
this.enabled(t.Category.TRANSITION) && console.log(Jt(e) + ': Ignored <> ' + ke(e));
|
|
}),
|
|
(e.prototype.traceHookInvocation = function(e, r, n) {
|
|
if (this.enabled(t.Category.HOOK)) {
|
|
var i = c('traceData.hookType')(n) || 'internal',
|
|
o = c('traceData.context.state.name')(n) || c('traceData.context')(n) || 'unknown',
|
|
a = Ee(e.registeredHook.callback);
|
|
console.log(Jt(r) + ': Hook -> ' + i + ' context: ' + o + ', ' + Se(200, a));
|
|
}
|
|
}),
|
|
(e.prototype.traceHookResult = function(e, r, n) {
|
|
this.enabled(t.Category.HOOK) && console.log(Jt(r) + ': <- Hook returned: ' + Se(200, ke(e)));
|
|
}),
|
|
(e.prototype.traceResolvePath = function(e, r, n) {
|
|
this.enabled(t.Category.RESOLVE) && console.log(Jt(n) + ': Resolving ' + e + ' (' + r + ')');
|
|
}),
|
|
(e.prototype.traceResolvableResolved = function(e, r) {
|
|
this.enabled(t.Category.RESOLVE) &&
|
|
console.log(Jt(r) + ': <- Resolved ' + e + ' to: ' + Se(200, ke(e.data)));
|
|
}),
|
|
(e.prototype.traceError = function(e, r) {
|
|
this.enabled(t.Category.TRANSITION) && console.log(Jt(r) + ': <- Rejected ' + ke(r) + ', reason: ' + e);
|
|
}),
|
|
(e.prototype.traceSuccess = function(e, r) {
|
|
this.enabled(t.Category.TRANSITION) &&
|
|
console.log(Jt(r) + ': <- Success ' + ke(r) + ', final state: ' + e.name);
|
|
}),
|
|
(e.prototype.traceUIViewEvent = function(e, r, n) {
|
|
void 0 === n && (n = ''),
|
|
this.enabled(t.Category.UIVIEW) && console.log('ui-view: ' + be(30, e) + ' ' + Nt(r) + n);
|
|
}),
|
|
(e.prototype.traceUIViewConfigUpdated = function(e, r) {
|
|
this.enabled(t.Category.UIVIEW) &&
|
|
this.traceUIViewEvent('Updating', e, " with ViewConfig from context='" + r + "'");
|
|
}),
|
|
(e.prototype.traceUIViewFill = function(e, r) {
|
|
this.enabled(t.Category.UIVIEW) && this.traceUIViewEvent('Fill', e, ' with: ' + Se(200, r));
|
|
}),
|
|
(e.prototype.traceViewSync = function(e) {
|
|
if (this.enabled(t.Category.VIEWCONFIG)) {
|
|
var r = 'uiview component fqn',
|
|
n = e
|
|
.map(function(t) {
|
|
var e,
|
|
n = t.uiView,
|
|
i = t.viewConfig,
|
|
o = n && n.fqn,
|
|
a = i && i.viewDecl.$context.name + ': (' + i.viewDecl.$name + ')';
|
|
return ((e = {})[r] = o), (e['view config state (view name)'] = a), e;
|
|
})
|
|
.sort(function(t, e) {
|
|
return (t[r] || '').localeCompare(e[r] || '');
|
|
});
|
|
Mt(n);
|
|
}
|
|
}),
|
|
(e.prototype.traceViewServiceEvent = function(e, r) {
|
|
this.enabled(t.Category.VIEWCONFIG) &&
|
|
console.log(
|
|
'VIEWCONFIG: ' +
|
|
e +
|
|
' ' +
|
|
(function(t) {
|
|
var e = t.viewDecl,
|
|
r = e.$context.name || '(root)';
|
|
return (
|
|
'[View#' +
|
|
t.$id +
|
|
" from '" +
|
|
r +
|
|
"' state]: target ui-view: '" +
|
|
e.$uiViewName +
|
|
'@' +
|
|
e.$uiViewContextAnchor +
|
|
"'"
|
|
);
|
|
})(r),
|
|
);
|
|
}),
|
|
(e.prototype.traceViewServiceUIViewEvent = function(e, r) {
|
|
this.enabled(t.Category.VIEWCONFIG) && console.log('VIEWCONFIG: ' + e + ' ' + Nt(r));
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Kt = new Qt();
|
|
((Bt = t.TransitionHookPhase || (t.TransitionHookPhase = {}))[(Bt.CREATE = 0)] = 'CREATE'),
|
|
(Bt[(Bt.BEFORE = 1)] = 'BEFORE'),
|
|
(Bt[(Bt.RUN = 2)] = 'RUN'),
|
|
(Bt[(Bt.SUCCESS = 3)] = 'SUCCESS'),
|
|
(Bt[(Bt.ERROR = 4)] = 'ERROR'),
|
|
((Gt = t.TransitionHookScope || (t.TransitionHookScope = {}))[(Gt.TRANSITION = 0)] = 'TRANSITION'),
|
|
(Gt[(Gt.STATE = 1)] = 'STATE');
|
|
var Yt = (function() {
|
|
function t(t, e, r, n) {
|
|
(this._stateRegistry = t),
|
|
(this._identifier = e),
|
|
(this._identifier = e),
|
|
(this._params = G({}, r || {})),
|
|
(this._options = G({}, n || {})),
|
|
(this._definition = t.matcher.find(e, this._options.relative));
|
|
}
|
|
return (
|
|
(t.prototype.name = function() {
|
|
return (this._definition && this._definition.name) || this._identifier;
|
|
}),
|
|
(t.prototype.identifier = function() {
|
|
return this._identifier;
|
|
}),
|
|
(t.prototype.params = function() {
|
|
return this._params;
|
|
}),
|
|
(t.prototype.$state = function() {
|
|
return this._definition;
|
|
}),
|
|
(t.prototype.state = function() {
|
|
return this._definition && this._definition.self;
|
|
}),
|
|
(t.prototype.options = function() {
|
|
return this._options;
|
|
}),
|
|
(t.prototype.exists = function() {
|
|
return !(!this._definition || !this._definition.self);
|
|
}),
|
|
(t.prototype.valid = function() {
|
|
return !this.error();
|
|
}),
|
|
(t.prototype.error = function() {
|
|
var t = this.options().relative;
|
|
if (!this._definition && t) {
|
|
var e = t.name ? t.name : t;
|
|
return "Could not resolve '" + this.name() + "' from state '" + e + "'";
|
|
}
|
|
return this._definition
|
|
? this._definition.self
|
|
? void 0
|
|
: "State '" + this.name() + "' has an invalid definition"
|
|
: "No such state '" + this.name() + "'";
|
|
}),
|
|
(t.prototype.toString = function() {
|
|
return "'" + this.name() + "'" + ke(this.params());
|
|
}),
|
|
(t.prototype.withState = function(e) {
|
|
return new t(this._stateRegistry, e, this._params, this._options);
|
|
}),
|
|
(t.prototype.withParams = function(e, r) {
|
|
void 0 === r && (r = !1);
|
|
var n = r ? e : G({}, this._params, e);
|
|
return new t(this._stateRegistry, this._identifier, n, this._options);
|
|
}),
|
|
(t.prototype.withOptions = function(e, r) {
|
|
void 0 === r && (r = !1);
|
|
var n = r ? e : G({}, this._options, e);
|
|
return new t(this._stateRegistry, this._identifier, this._params, n);
|
|
}),
|
|
(t.isDef = function(t) {
|
|
return t && t.state && (O(t.state) || O(t.state.name));
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
Zt = { current: J, transition: null, traceData: {}, bind: null },
|
|
Xt = (function() {
|
|
function e(e, r, n, i) {
|
|
var o = this;
|
|
(this.transition = e),
|
|
(this.stateContext = r),
|
|
(this.registeredHook = n),
|
|
(this.options = i),
|
|
(this.isSuperseded = function() {
|
|
return o.type.hookPhase === t.TransitionHookPhase.RUN && !o.options.transition.isActive();
|
|
}),
|
|
(this.options = it(i, Zt)),
|
|
(this.type = n.eventType);
|
|
}
|
|
return (
|
|
(e.chain = function(t, e) {
|
|
return t.reduce(function(t, e) {
|
|
return t.then(function() {
|
|
return e.invokeHook();
|
|
});
|
|
}, e || N.$q.when());
|
|
}),
|
|
(e.invokeHooks = function(t, r) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n].invokeHook();
|
|
if (D(i)) {
|
|
var o = t.slice(n + 1);
|
|
return e.chain(o, i).then(r);
|
|
}
|
|
}
|
|
return r();
|
|
}),
|
|
(e.runAllHooks = function(t) {
|
|
t.forEach(function(t) {
|
|
return t.invokeHook();
|
|
});
|
|
}),
|
|
(e.prototype.logError = function(t) {
|
|
this.transition.router.stateService.defaultErrorHandler()(t);
|
|
}),
|
|
(e.prototype.invokeHook = function() {
|
|
var t = this,
|
|
e = this.registeredHook;
|
|
if (!e._deregistered) {
|
|
var r = this.getNotCurrentRejection();
|
|
if (r) return r;
|
|
var n = this.options;
|
|
Kt.traceHookInvocation(this, this.transition, n);
|
|
var i = function(r) {
|
|
return e.eventType.getErrorHandler(t)(r);
|
|
},
|
|
o = function(r) {
|
|
return e.eventType.getResultHandler(t)(r);
|
|
};
|
|
try {
|
|
var a = e.callback.call(n.bind, t.transition, t.stateContext);
|
|
return !this.type.synchronous && D(a)
|
|
? a
|
|
.catch(function(t) {
|
|
return qt.normalize(t).toPromise();
|
|
})
|
|
.then(o, i)
|
|
: o(a);
|
|
} catch (t) {
|
|
return i(qt.normalize(t));
|
|
} finally {
|
|
e.invokeLimit && ++e.invokeCount >= e.invokeLimit && e.deregister();
|
|
}
|
|
}
|
|
}),
|
|
(e.prototype.handleHookResult = function(t) {
|
|
var e = this,
|
|
r = this.getNotCurrentRejection();
|
|
return (
|
|
r ||
|
|
(D(t)
|
|
? t.then(function(t) {
|
|
return e.handleHookResult(t);
|
|
})
|
|
: (Kt.traceHookResult(t, this.transition, this.options),
|
|
!1 === t
|
|
? qt.aborted('Hook aborted transition').toPromise()
|
|
: d(Yt)(t)
|
|
? qt.redirected(t).toPromise()
|
|
: void 0))
|
|
);
|
|
}),
|
|
(e.prototype.getNotCurrentRejection = function() {
|
|
var t = this.transition.router;
|
|
return t._disposed
|
|
? qt.aborted('UIRouter instance #' + t.$id + ' has been stopped (disposed)').toPromise()
|
|
: this.transition._aborted
|
|
? qt.aborted().toPromise()
|
|
: this.isSuperseded()
|
|
? qt.superseded(this.options.current()).toPromise()
|
|
: void 0;
|
|
}),
|
|
(e.prototype.toString = function() {
|
|
var t = this.options,
|
|
e = this.registeredHook;
|
|
return (
|
|
(c('traceData.hookType')(t) || 'internal') +
|
|
' context: ' +
|
|
(c('traceData.context.state.name')(t) || c('traceData.context')(t) || 'unknown') +
|
|
', ' +
|
|
Se(200, Ce(e.callback))
|
|
);
|
|
}),
|
|
(e.HANDLE_RESULT = function(t) {
|
|
return function(e) {
|
|
return t.handleHookResult(e);
|
|
};
|
|
}),
|
|
(e.LOG_REJECTED_RESULT = function(t) {
|
|
return function(e) {
|
|
D(e) &&
|
|
e.catch(function(e) {
|
|
return t.logError(qt.normalize(e));
|
|
});
|
|
};
|
|
}),
|
|
(e.LOG_ERROR = function(t) {
|
|
return function(e) {
|
|
return t.logError(e);
|
|
};
|
|
}),
|
|
(e.REJECT_ERROR = function(t) {
|
|
return function(t) {
|
|
return At(t);
|
|
};
|
|
}),
|
|
(e.THROW_ERROR = function(t) {
|
|
return function(t) {
|
|
throw t;
|
|
};
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function te(t, e) {
|
|
var r = O(e) ? [e] : e;
|
|
return !!(P(r)
|
|
? r
|
|
: function(t) {
|
|
for (var e = r, n = 0; n < e.length; n++) {
|
|
var i = new w(e[n]);
|
|
if ((i && i.matches(t.name)) || (!i && e[n] === t.name)) return !0;
|
|
}
|
|
return !1;
|
|
})(t);
|
|
}
|
|
var ee = (function() {
|
|
function e(t, e, r, n, i, o) {
|
|
void 0 === o && (o = {}),
|
|
(this.tranSvc = t),
|
|
(this.eventType = e),
|
|
(this.callback = r),
|
|
(this.matchCriteria = n),
|
|
(this.removeHookFromRegistry = i),
|
|
(this.invokeCount = 0),
|
|
(this._deregistered = !1),
|
|
(this.priority = o.priority || 0),
|
|
(this.bind = o.bind || null),
|
|
(this.invokeLimit = o.invokeLimit);
|
|
}
|
|
return (
|
|
(e.prototype._matchingNodes = function(t, e) {
|
|
if (!0 === e) return t;
|
|
var r = t.filter(function(t) {
|
|
return te(t.state, e);
|
|
});
|
|
return r.length ? r : null;
|
|
}),
|
|
(e.prototype._getDefaultMatchCriteria = function() {
|
|
return ht(this.tranSvc._pluginapi._getPathTypes(), function() {
|
|
return !0;
|
|
});
|
|
}),
|
|
(e.prototype._getMatchingNodes = function(e) {
|
|
var r = this,
|
|
n = G(this._getDefaultMatchCriteria(), this.matchCriteria);
|
|
return vt(this.tranSvc._pluginapi._getPathTypes()).reduce(function(i, o) {
|
|
var a = o.scope === t.TransitionHookScope.STATE,
|
|
u = e[o.name] || [],
|
|
s = a ? u : [kt(u)];
|
|
return (i[o.name] = r._matchingNodes(s, n[o.name])), i;
|
|
}, {});
|
|
}),
|
|
(e.prototype.matches = function(t) {
|
|
var e = this._getMatchingNodes(t);
|
|
return vt(e).every(z) ? e : null;
|
|
}),
|
|
(e.prototype.deregister = function() {
|
|
this.removeHookFromRegistry(this), (this._deregistered = !0);
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function re(t, e, r) {
|
|
var n = ((t._registeredHooks = t._registeredHooks || {})[r.name] = []),
|
|
i = X(n);
|
|
function o(t, o, a) {
|
|
void 0 === a && (a = {});
|
|
var u = new ee(e, r, o, t, i, a);
|
|
return n.push(u), u.deregister.bind(u);
|
|
}
|
|
return (t[r.name] = o), o;
|
|
}
|
|
var ne = (function() {
|
|
function e(t) {
|
|
this.transition = t;
|
|
}
|
|
return (
|
|
(e.prototype.buildHooksForPhase = function(t) {
|
|
var e = this;
|
|
return this.transition.router.transitionService._pluginapi
|
|
._getEvents(t)
|
|
.map(function(t) {
|
|
return e.buildHooks(t);
|
|
})
|
|
.reduce(yt, [])
|
|
.filter(z);
|
|
}),
|
|
(e.prototype.buildHooks = function(e) {
|
|
var r = this.transition,
|
|
n = r.treeChanges(),
|
|
i = this.getMatchingHooks(e, n);
|
|
if (!i) return [];
|
|
var o = { transition: r, current: r.options().current };
|
|
return i
|
|
.map(function(i) {
|
|
return i.matches(n)[e.criteriaMatchPath.name].map(function(n) {
|
|
var a = G({ bind: i.bind, traceData: { hookType: e.name, context: n } }, o),
|
|
u = e.criteriaMatchPath.scope === t.TransitionHookScope.STATE ? n.state.self : null,
|
|
s = new Xt(r, u, i, a);
|
|
return { hook: i, node: n, transitionHook: s };
|
|
});
|
|
})
|
|
.reduce(yt, [])
|
|
.sort(
|
|
(function(t) {
|
|
void 0 === t && (t = !1);
|
|
return function(e, r) {
|
|
var n = t ? -1 : 1,
|
|
i = (e.node.state.path.length - r.node.state.path.length) * n;
|
|
return 0 !== i ? i : r.hook.priority - e.hook.priority;
|
|
};
|
|
})(e.reverseSort),
|
|
)
|
|
.map(function(t) {
|
|
return t.transitionHook;
|
|
});
|
|
}),
|
|
(e.prototype.getMatchingHooks = function(e, r) {
|
|
var n = e.hookPhase === t.TransitionHookPhase.CREATE,
|
|
i = this.transition.router.transitionService;
|
|
return (n ? [i] : [this.transition, i])
|
|
.map(function(t) {
|
|
return t.getHooks(e.name);
|
|
})
|
|
.filter(bt(V, 'broken event named: ' + e.name))
|
|
.reduce(yt, [])
|
|
.filter(function(t) {
|
|
return t.matches(r);
|
|
});
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
var ie = (function() {
|
|
function t(t) {
|
|
(this.pattern = /.*/), (this.inherit = !0), G(this, t);
|
|
}
|
|
return (
|
|
(t.prototype.is = function(t, e) {
|
|
return !0;
|
|
}),
|
|
(t.prototype.encode = function(t, e) {
|
|
return t;
|
|
}),
|
|
(t.prototype.decode = function(t, e) {
|
|
return t;
|
|
}),
|
|
(t.prototype.equals = function(t, e) {
|
|
return t == e;
|
|
}),
|
|
(t.prototype.$subPattern = function() {
|
|
var t = this.pattern.toString();
|
|
return t.substr(1, t.length - 2);
|
|
}),
|
|
(t.prototype.toString = function() {
|
|
return '{ParamType:' + this.name + '}';
|
|
}),
|
|
(t.prototype.$normalize = function(t) {
|
|
return this.is(t) ? t : this.decode(t);
|
|
}),
|
|
(t.prototype.$asArray = function(t, e) {
|
|
if (!t) return this;
|
|
if ('auto' === t && !e) throw new Error("'auto' array mode is for query parameters only");
|
|
return new function(t, e) {
|
|
var r = this;
|
|
function n(t) {
|
|
return V(t) ? t : E(t) ? [t] : [];
|
|
}
|
|
function i(t, r) {
|
|
return function(i) {
|
|
if (V(i) && 0 === i.length) return i;
|
|
var o = n(i),
|
|
a = pt(o, t);
|
|
return !0 === r
|
|
? 0 ===
|
|
ft(a, function(t) {
|
|
return !t;
|
|
}).length
|
|
: (function(t) {
|
|
switch (t.length) {
|
|
case 0:
|
|
return;
|
|
case 1:
|
|
return 'auto' === e ? t[0] : t;
|
|
default:
|
|
return t;
|
|
}
|
|
})(a);
|
|
};
|
|
}
|
|
function o(t) {
|
|
return function(e, r) {
|
|
var i = n(e),
|
|
o = n(r);
|
|
if (i.length !== o.length) return !1;
|
|
for (var a = 0; a < i.length; a++) if (!t(i[a], o[a])) return !1;
|
|
return !0;
|
|
};
|
|
}
|
|
['encode', 'decode', 'equals', '$normalize'].forEach(function(e) {
|
|
var n = t[e].bind(t),
|
|
a = 'equals' === e ? o : i;
|
|
r[e] = a(n);
|
|
}),
|
|
G(this, {
|
|
dynamic: t.dynamic,
|
|
name: t.name,
|
|
pattern: t.pattern,
|
|
inherit: t.inherit,
|
|
is: i(t.is.bind(t), !0),
|
|
$arrayMode: e,
|
|
});
|
|
}(this, t);
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
var oe,
|
|
ae = Object.prototype.hasOwnProperty,
|
|
ue = function(t) {
|
|
return 0 === ['value', 'type', 'squash', 'array', 'dynamic'].filter(ae.bind(t || {})).length;
|
|
};
|
|
((oe = t.DefType || (t.DefType = {}))[(oe.PATH = 0)] = 'PATH'),
|
|
(oe[(oe.SEARCH = 1)] = 'SEARCH'),
|
|
(oe[(oe.CONFIG = 2)] = 'CONFIG');
|
|
var se = (function() {
|
|
function e(e, r, n, i, o) {
|
|
r = (function(e, r, n, i, o) {
|
|
if (e.type && r && 'string' !== r.name) throw new Error("Param '" + i + "' has two type configurations.");
|
|
if (e.type && r && 'string' === r.name && o.type(e.type)) return o.type(e.type);
|
|
if (r) return r;
|
|
if (!e.type) {
|
|
var a =
|
|
n === t.DefType.CONFIG
|
|
? 'any'
|
|
: n === t.DefType.PATH
|
|
? 'path'
|
|
: n === t.DefType.SEARCH
|
|
? 'query'
|
|
: 'string';
|
|
return o.type(a);
|
|
}
|
|
return e.type instanceof ie ? e.type : o.type(e.type);
|
|
})(
|
|
(n = (function(t) {
|
|
function e() {
|
|
return t.value;
|
|
}
|
|
return (t = (ue(t) && { value: t }) || t), (e.__cacheable = !0), G(t, { $$fn: H(t.value) ? t.value : e });
|
|
})(n)),
|
|
r,
|
|
i,
|
|
e,
|
|
o.paramTypes,
|
|
);
|
|
var a,
|
|
s,
|
|
c = ((a = { array: i === t.DefType.SEARCH && 'auto' }),
|
|
(s = e.match(/\[\]$/) ? { array: !0 } : {}),
|
|
G(a, s, n).array);
|
|
r = c ? r.$asArray(c, i === t.DefType.SEARCH) : r;
|
|
var f = void 0 !== n.value || i === t.DefType.SEARCH,
|
|
l = E(n.dynamic) ? !!n.dynamic : !!r.dynamic,
|
|
h = E(n.raw) ? !!n.raw : !!r.raw,
|
|
p = (function(t, e, r) {
|
|
var n = t.squash;
|
|
if (!e || !1 === n) return !1;
|
|
if (!E(n) || null == n) return r;
|
|
if (!0 === n || O(n)) return n;
|
|
throw new Error("Invalid squash policy: '" + n + "'. Valid policies: false, true, or arbitrary string");
|
|
})(n, f, o.defaultSquashPolicy()),
|
|
v = (function(t, e, r, n) {
|
|
var i = [{ from: '', to: r || e ? void 0 : '' }, { from: null, to: r || e ? void 0 : '' }],
|
|
o = V(t.replace) ? t.replace : [];
|
|
O(n) && o.push({ from: n, to: void 0 });
|
|
var a = pt(o, u('from'));
|
|
return ft(i, function(t) {
|
|
return -1 === a.indexOf(t.from);
|
|
}).concat(o);
|
|
})(n, c, f, p),
|
|
d = E(n.inherit) ? !!n.inherit : !!r.inherit;
|
|
G(this, {
|
|
id: e,
|
|
type: r,
|
|
location: i,
|
|
isOptional: f,
|
|
dynamic: l,
|
|
raw: h,
|
|
squash: p,
|
|
replace: v,
|
|
inherit: d,
|
|
array: c,
|
|
config: n,
|
|
});
|
|
}
|
|
return (
|
|
(e.values = function(t, e) {
|
|
void 0 === e && (e = {});
|
|
for (var r = {}, n = 0, i = t; n < i.length; n++) {
|
|
var o = i[n];
|
|
r[o.id] = o.value(e[o.id]);
|
|
}
|
|
return r;
|
|
}),
|
|
(e.changed = function(t, e, r) {
|
|
return (
|
|
void 0 === e && (e = {}),
|
|
void 0 === r && (r = {}),
|
|
t.filter(function(t) {
|
|
return !t.type.equals(e[t.id], r[t.id]);
|
|
})
|
|
);
|
|
}),
|
|
(e.equals = function(t, r, n) {
|
|
return void 0 === r && (r = {}), void 0 === n && (n = {}), 0 === e.changed(t, r, n).length;
|
|
}),
|
|
(e.validates = function(t, e) {
|
|
return (
|
|
void 0 === e && (e = {}),
|
|
t
|
|
.map(function(t) {
|
|
return t.validates(e[t.id]);
|
|
})
|
|
.reduce(dt, !0)
|
|
);
|
|
}),
|
|
(e.prototype.isDefaultValue = function(t) {
|
|
return this.isOptional && this.type.equals(this.value(), t);
|
|
}),
|
|
(e.prototype.value = function(t) {
|
|
var e = this;
|
|
return (
|
|
(t = (function(t) {
|
|
for (var r = 0, n = e.replace; r < n.length; r++) {
|
|
var i = n[r];
|
|
if (i.from === t) return i.to;
|
|
}
|
|
return t;
|
|
})(t)),
|
|
R(t)
|
|
? (function() {
|
|
if (e._defaultValueCache) return e._defaultValueCache.defaultValue;
|
|
if (!N.$injector) throw new Error('Injectable functions cannot be called at configuration time');
|
|
var t = N.$injector.invoke(e.config.$$fn);
|
|
if (null !== t && void 0 !== t && !e.type.is(t))
|
|
throw new Error(
|
|
'Default value (' +
|
|
t +
|
|
") for parameter '" +
|
|
e.id +
|
|
"' is not an instance of ParamType (" +
|
|
e.type.name +
|
|
')',
|
|
);
|
|
return e.config.$$fn.__cacheable && (e._defaultValueCache = { defaultValue: t }), t;
|
|
})()
|
|
: this.type.$normalize(t)
|
|
);
|
|
}),
|
|
(e.prototype.isSearch = function() {
|
|
return this.location === t.DefType.SEARCH;
|
|
}),
|
|
(e.prototype.validates = function(t) {
|
|
if ((R(t) || null === t) && this.isOptional) return !0;
|
|
var e = this.type.$normalize(t);
|
|
if (!this.type.is(e)) return !1;
|
|
var r = this.type.encode(e);
|
|
return !(O(r) && !this.type.pattern.exec(r));
|
|
}),
|
|
(e.prototype.toString = function() {
|
|
return (
|
|
'{Param:' + this.id + ' ' + this.type + " squash: '" + this.squash + "' optional: " + this.isOptional + '}'
|
|
);
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
ce = (function() {
|
|
function t(e) {
|
|
if (e instanceof t) {
|
|
var r = e;
|
|
(this.state = r.state),
|
|
(this.paramSchema = r.paramSchema.slice()),
|
|
(this.paramValues = G({}, r.paramValues)),
|
|
(this.resolvables = r.resolvables.slice()),
|
|
(this.views = r.views && r.views.slice());
|
|
} else {
|
|
var n = e;
|
|
(this.state = n),
|
|
(this.paramSchema = n.parameters({ inherit: !1 })),
|
|
(this.paramValues = {}),
|
|
(this.resolvables = n.resolvables.map(function(t) {
|
|
return t.clone();
|
|
}));
|
|
}
|
|
}
|
|
return (
|
|
(t.prototype.clone = function() {
|
|
return new t(this);
|
|
}),
|
|
(t.prototype.applyRawParams = function(t) {
|
|
return (
|
|
(this.paramValues = this.paramSchema.reduce(function(e, r) {
|
|
return Pt(e, [(n = r).id, n.value(t[n.id])]);
|
|
var n;
|
|
}, {})),
|
|
this
|
|
);
|
|
}),
|
|
(t.prototype.parameter = function(t) {
|
|
return lt(this.paramSchema, s('id', t));
|
|
}),
|
|
(t.prototype.equals = function(t, e) {
|
|
var r = this.diff(t, e);
|
|
return r && 0 === r.length;
|
|
}),
|
|
(t.prototype.diff = function(t, e) {
|
|
if (this.state !== t.state) return !1;
|
|
var r = e ? e(this) : this.paramSchema;
|
|
return se.changed(r, this.paramValues, t.paramValues);
|
|
}),
|
|
(t.clone = function(t) {
|
|
return t.clone();
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
fe = (function() {
|
|
function t() {}
|
|
return (
|
|
(t.makeTargetState = function(t, e) {
|
|
var r = kt(e).state;
|
|
return new Yt(t, r, e.map(u('paramValues')).reduce(ot, {}), {});
|
|
}),
|
|
(t.buildPath = function(t) {
|
|
var e = t.params();
|
|
return t.$state().path.map(function(t) {
|
|
return new ce(t).applyRawParams(e);
|
|
});
|
|
}),
|
|
(t.buildToPath = function(e, r) {
|
|
var n = t.buildPath(r);
|
|
return r.options().inherit ? t.inheritParams(e, n, Object.keys(r.params())) : n;
|
|
}),
|
|
(t.applyViewConfigs = function(e, r, n) {
|
|
r
|
|
.filter(function(t) {
|
|
return Y(n, t.state);
|
|
})
|
|
.forEach(function(n) {
|
|
var i = vt(n.state.views || {}),
|
|
o = t.subPath(r, function(t) {
|
|
return t === n;
|
|
}),
|
|
a = i.map(function(t) {
|
|
return e.createViewConfig(o, t);
|
|
});
|
|
n.views = a.reduce(yt, []);
|
|
});
|
|
}),
|
|
(t.inheritParams = function(t, e, r) {
|
|
void 0 === r && (r = []);
|
|
var n = t
|
|
.map(function(t) {
|
|
return t.paramSchema;
|
|
})
|
|
.reduce(yt, [])
|
|
.filter(function(t) {
|
|
return !t.inherit;
|
|
})
|
|
.map(u('id'));
|
|
return e.map(function(e) {
|
|
var i = G({}, e && e.paramValues),
|
|
o = ut(i, r);
|
|
i = st(i, r);
|
|
var a,
|
|
u,
|
|
c,
|
|
f = st(((a = t), (u = e.state), (c = lt(a, s('state', u))), G({}, c && c.paramValues) || {}), n),
|
|
l = G(i, f, o);
|
|
return new ce(e.state).applyRawParams(l);
|
|
});
|
|
}),
|
|
(t.treeChanges = function(e, r, n) {
|
|
for (
|
|
var i, o, a, u, s, c, f = Math.min(e.length, r.length), l = 0;
|
|
l < f && e[l].state !== n && ((i = e[l]), (o = r[l]), i.equals(o, t.nonDynamicParams));
|
|
|
|
)
|
|
l++;
|
|
(u = (a = e).slice(0, l)), (s = a.slice(l));
|
|
var h = u.map(function(t, e) {
|
|
var n = t.clone();
|
|
return (n.paramValues = r[e].paramValues), n;
|
|
});
|
|
return (
|
|
(c = r.slice(l)),
|
|
{ from: a, to: h.concat(c), retained: u, retainedWithToParams: h, exiting: s, entering: c }
|
|
);
|
|
}),
|
|
(t.matching = function(t, e, r) {
|
|
var n = !1;
|
|
return Tt(t, e).reduce(function(t, e) {
|
|
var i = e[0],
|
|
o = e[1];
|
|
return (n = n || !i.equals(o, r)) ? t : t.concat(i);
|
|
}, []);
|
|
}),
|
|
(t.equals = function(e, r, n) {
|
|
return e.length === r.length && t.matching(e, r, n).length === e.length;
|
|
}),
|
|
(t.subPath = function(t, e) {
|
|
var r = lt(t, e),
|
|
n = t.indexOf(r);
|
|
return -1 === n ? void 0 : t.slice(0, n + 1);
|
|
}),
|
|
(t.nonDynamicParams = function(t) {
|
|
return t.state.parameters({ inherit: !1 }).filter(function(t) {
|
|
return !t.dynamic;
|
|
});
|
|
}),
|
|
(t.paramValues = function(t) {
|
|
return t.reduce(function(t, e) {
|
|
return G(t, e.paramValues);
|
|
}, {});
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
le = { when: 'LAZY', async: 'WAIT' },
|
|
he = (function() {
|
|
function t(e, r, n, i, o) {
|
|
if (((this.resolved = !1), (this.promise = void 0), e instanceof t)) G(this, e);
|
|
else if (P(r)) {
|
|
if (T(e)) throw new Error('new Resolvable(): token argument is required');
|
|
if (!P(r)) throw new Error('new Resolvable(): resolveFn argument must be a function');
|
|
(this.token = e),
|
|
(this.policy = i),
|
|
(this.resolveFn = r),
|
|
(this.deps = n || []),
|
|
(this.data = o),
|
|
(this.resolved = void 0 !== o),
|
|
(this.promise = this.resolved ? N.$q.when(this.data) : void 0);
|
|
} else if (x(e) && e.token && (e.hasOwnProperty('resolveFn') || e.hasOwnProperty('data'))) {
|
|
var a = e;
|
|
return new t(a.token, a.resolveFn, a.deps, a.policy, a.data);
|
|
}
|
|
}
|
|
return (
|
|
(t.prototype.getPolicy = function(t) {
|
|
var e = this.policy || {},
|
|
r = (t && t.resolvePolicy) || {};
|
|
return { when: e.when || r.when || le.when, async: e.async || r.async || le.async };
|
|
}),
|
|
(t.prototype.resolve = function(t, e) {
|
|
var r = this,
|
|
n = N.$q,
|
|
i = t.findNode(this),
|
|
o = i && i.state,
|
|
a =
|
|
'RXWAIT' === this.getPolicy(o).async
|
|
? function(t) {
|
|
var e = t.cache(1);
|
|
return e
|
|
.take(1)
|
|
.toPromise()
|
|
.then(function() {
|
|
return e;
|
|
});
|
|
}
|
|
: z;
|
|
return (this.promise = n
|
|
.when()
|
|
.then(function() {
|
|
return n.all(
|
|
t.getDependencies(r).map(function(r) {
|
|
return r.get(t, e);
|
|
}),
|
|
);
|
|
})
|
|
.then(function(t) {
|
|
return r.resolveFn.apply(null, t);
|
|
})
|
|
.then(a)
|
|
.then(function(t) {
|
|
return (r.data = t), (r.resolved = !0), (r.resolveFn = null), Kt.traceResolvableResolved(r, e), r.data;
|
|
}));
|
|
}),
|
|
(t.prototype.get = function(t, e) {
|
|
return this.promise || this.resolve(t, e);
|
|
}),
|
|
(t.prototype.toString = function() {
|
|
return 'Resolvable(token: ' + ke(this.token) + ', requires: [' + this.deps.map(ke) + '])';
|
|
}),
|
|
(t.prototype.clone = function() {
|
|
return new t(this);
|
|
}),
|
|
(t.fromData = function(e, r) {
|
|
return new t(
|
|
e,
|
|
function() {
|
|
return r;
|
|
},
|
|
null,
|
|
null,
|
|
r,
|
|
);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
pe = { when: { LAZY: 'LAZY', EAGER: 'EAGER' }, async: { WAIT: 'WAIT', NOWAIT: 'NOWAIT', RXWAIT: 'RXWAIT' } },
|
|
ve = pe.when,
|
|
de = [ve.EAGER, ve.LAZY],
|
|
me = [ve.EAGER],
|
|
ye = 'Native Injector',
|
|
ge = (function() {
|
|
function t(t) {
|
|
this._path = t;
|
|
}
|
|
return (
|
|
(t.prototype.getTokens = function() {
|
|
return this._path
|
|
.reduce(function(t, e) {
|
|
return t.concat(
|
|
e.resolvables.map(function(t) {
|
|
return t.token;
|
|
}),
|
|
);
|
|
}, [])
|
|
.reduce(wt, []);
|
|
}),
|
|
(t.prototype.getResolvable = function(t) {
|
|
return kt(
|
|
this._path
|
|
.map(function(t) {
|
|
return t.resolvables;
|
|
})
|
|
.reduce(yt, [])
|
|
.filter(function(e) {
|
|
return e.token === t;
|
|
}),
|
|
);
|
|
}),
|
|
(t.prototype.getPolicy = function(t) {
|
|
var e = this.findNode(t);
|
|
return t.getPolicy(e.state);
|
|
}),
|
|
(t.prototype.subContext = function(e) {
|
|
return new t(
|
|
fe.subPath(this._path, function(t) {
|
|
return t.state === e;
|
|
}),
|
|
);
|
|
}),
|
|
(t.prototype.addResolvables = function(t, e) {
|
|
var r = lt(this._path, s('state', e)),
|
|
n = t.map(function(t) {
|
|
return t.token;
|
|
});
|
|
r.resolvables = r.resolvables
|
|
.filter(function(t) {
|
|
return -1 === n.indexOf(t.token);
|
|
})
|
|
.concat(t);
|
|
}),
|
|
(t.prototype.resolvePath = function(t, e) {
|
|
var r = this;
|
|
void 0 === t && (t = 'LAZY');
|
|
var n = (Y(de, t) ? t : 'LAZY') === pe.when.EAGER ? me : de;
|
|
Kt.traceResolvePath(this._path, t, e);
|
|
var i = function(t, e) {
|
|
return function(n) {
|
|
return Y(t, r.getPolicy(n)[e]);
|
|
};
|
|
},
|
|
o = this._path.reduce(function(t, o) {
|
|
var a = o.resolvables.filter(i(n, 'when')),
|
|
u = a.filter(i(['NOWAIT'], 'async')),
|
|
s = a.filter(f(i(['NOWAIT'], 'async'))),
|
|
c = r.subContext(o.state),
|
|
l = function(t) {
|
|
return t.get(c, e).then(function(e) {
|
|
return { token: t.token, value: e };
|
|
});
|
|
};
|
|
return u.forEach(l), t.concat(s.map(l));
|
|
}, []);
|
|
return N.$q.all(o);
|
|
}),
|
|
(t.prototype.injector = function() {
|
|
return this._injector || (this._injector = new _e(this));
|
|
}),
|
|
(t.prototype.findNode = function(t) {
|
|
return lt(this._path, function(e) {
|
|
return Y(e.resolvables, t);
|
|
});
|
|
}),
|
|
(t.prototype.getDependencies = function(t) {
|
|
var e = this,
|
|
r = this.findNode(t),
|
|
n = (
|
|
fe.subPath(this._path, function(t) {
|
|
return t === r;
|
|
}) || this._path
|
|
)
|
|
.reduce(function(t, e) {
|
|
return t.concat(e.resolvables);
|
|
}, [])
|
|
.filter(function(e) {
|
|
return e !== t;
|
|
});
|
|
return t.deps.map(function(t) {
|
|
var r = n.filter(function(e) {
|
|
return e.token === t;
|
|
});
|
|
if (r.length) return kt(r);
|
|
var i = e.injector().getNative(t);
|
|
if (R(i)) throw new Error('Could not find Dependency Injection token: ' + ke(t));
|
|
return new he(
|
|
t,
|
|
function() {
|
|
return i;
|
|
},
|
|
[],
|
|
i,
|
|
);
|
|
});
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
_e = (function() {
|
|
function t(t) {
|
|
(this.context = t), (this.native = this.get(ye) || N.$injector);
|
|
}
|
|
return (
|
|
(t.prototype.get = function(t) {
|
|
var e = this.context.getResolvable(t);
|
|
if (e) {
|
|
if ('NOWAIT' === this.context.getPolicy(e).async) return e.get(this.context);
|
|
if (!e.resolved) throw new Error('Resolvable async .get() not complete:' + ke(e.token));
|
|
return e.data;
|
|
}
|
|
return this.getNative(t);
|
|
}),
|
|
(t.prototype.getAsync = function(t) {
|
|
var e = this.context.getResolvable(t);
|
|
return e ? e.get(this.context) : N.$q.when(this.native.get(t));
|
|
}),
|
|
(t.prototype.getNative = function(t) {
|
|
return this.native && this.native.get(t);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
we = u('self'),
|
|
$e = (function() {
|
|
function e(e, r, n) {
|
|
var i = this;
|
|
if (
|
|
((this._deferred = N.$q.defer()),
|
|
(this.promise = this._deferred.promise),
|
|
(this._registeredHooks = {}),
|
|
(this._hookBuilder = new ne(this)),
|
|
(this.isActive = function() {
|
|
return i.router.globals.transition === i;
|
|
}),
|
|
(this.router = n),
|
|
(this._targetState = r),
|
|
!r.valid())
|
|
)
|
|
throw new Error(r.error());
|
|
(this._options = G({ current: y(this) }, r.options())), (this.$id = n.transitionService._transitionCount++);
|
|
var o = fe.buildToPath(e, r);
|
|
(this._treeChanges = fe.treeChanges(e, o, this._options.reloadState)), this.createTransitionHookRegFns();
|
|
var a = this._hookBuilder.buildHooksForPhase(t.TransitionHookPhase.CREATE);
|
|
Xt.invokeHooks(a, function() {
|
|
return null;
|
|
}),
|
|
this.applyViewConfigs(n);
|
|
}
|
|
return (
|
|
(e.prototype.onBefore = function(t, e, r) {}),
|
|
(e.prototype.onStart = function(t, e, r) {}),
|
|
(e.prototype.onExit = function(t, e, r) {}),
|
|
(e.prototype.onRetain = function(t, e, r) {}),
|
|
(e.prototype.onEnter = function(t, e, r) {}),
|
|
(e.prototype.onFinish = function(t, e, r) {}),
|
|
(e.prototype.onSuccess = function(t, e, r) {}),
|
|
(e.prototype.onError = function(t, e, r) {}),
|
|
(e.prototype.createTransitionHookRegFns = function() {
|
|
var e = this;
|
|
this.router.transitionService._pluginapi
|
|
._getEvents()
|
|
.filter(function(e) {
|
|
return e.hookPhase !== t.TransitionHookPhase.CREATE;
|
|
})
|
|
.forEach(function(t) {
|
|
return re(e, e.router.transitionService, t);
|
|
});
|
|
}),
|
|
(e.prototype.getHooks = function(t) {
|
|
return this._registeredHooks[t];
|
|
}),
|
|
(e.prototype.applyViewConfigs = function(t) {
|
|
var e = this._treeChanges.entering.map(function(t) {
|
|
return t.state;
|
|
});
|
|
fe.applyViewConfigs(t.transitionService.$view, this._treeChanges.to, e);
|
|
}),
|
|
(e.prototype.$from = function() {
|
|
return kt(this._treeChanges.from).state;
|
|
}),
|
|
(e.prototype.$to = function() {
|
|
return kt(this._treeChanges.to).state;
|
|
}),
|
|
(e.prototype.from = function() {
|
|
return this.$from().self;
|
|
}),
|
|
(e.prototype.to = function() {
|
|
return this.$to().self;
|
|
}),
|
|
(e.prototype.targetState = function() {
|
|
return this._targetState;
|
|
}),
|
|
(e.prototype.is = function(t) {
|
|
return t instanceof e
|
|
? this.is({ to: t.$to().name, from: t.$from().name })
|
|
: !((t.to && !te(this.$to(), t.to)) || (t.from && !te(this.$from(), t.from)));
|
|
}),
|
|
(e.prototype.params = function(t) {
|
|
return void 0 === t && (t = 'to'), Object.freeze(this._treeChanges[t].map(u('paramValues')).reduce(ot, {}));
|
|
}),
|
|
(e.prototype.injector = function(t, e) {
|
|
void 0 === e && (e = 'to');
|
|
var r = this._treeChanges[e];
|
|
return (
|
|
t &&
|
|
(r = fe.subPath(r, function(e) {
|
|
return e.state === t || e.state.name === t;
|
|
})),
|
|
new ge(r).injector()
|
|
);
|
|
}),
|
|
(e.prototype.getResolveTokens = function(t) {
|
|
return void 0 === t && (t = 'to'), new ge(this._treeChanges[t]).getTokens();
|
|
}),
|
|
(e.prototype.addResolvable = function(t, e) {
|
|
void 0 === e && (e = ''), (t = d(he)(t) ? t : new he(t));
|
|
var r = 'string' == typeof e ? e : e.name,
|
|
n = this._treeChanges.to,
|
|
i = lt(n, function(t) {
|
|
return t.state.name === r;
|
|
});
|
|
new ge(n).addResolvables([t], i.state);
|
|
}),
|
|
(e.prototype.redirectedFrom = function() {
|
|
return this._options.redirectedFrom || null;
|
|
}),
|
|
(e.prototype.originalTransition = function() {
|
|
var t = this.redirectedFrom();
|
|
return (t && t.originalTransition()) || this;
|
|
}),
|
|
(e.prototype.options = function() {
|
|
return this._options;
|
|
}),
|
|
(e.prototype.entering = function() {
|
|
return pt(this._treeChanges.entering, u('state')).map(we);
|
|
}),
|
|
(e.prototype.exiting = function() {
|
|
return pt(this._treeChanges.exiting, u('state'))
|
|
.map(we)
|
|
.reverse();
|
|
}),
|
|
(e.prototype.retained = function() {
|
|
return pt(this._treeChanges.retained, u('state')).map(we);
|
|
}),
|
|
(e.prototype.views = function(t, e) {
|
|
void 0 === t && (t = 'entering');
|
|
var r = this._treeChanges[t];
|
|
return (r = e ? r.filter(s('state', e)) : r)
|
|
.map(u('views'))
|
|
.filter(z)
|
|
.reduce(yt, []);
|
|
}),
|
|
(e.prototype.treeChanges = function(t) {
|
|
return t ? this._treeChanges[t] : this._treeChanges;
|
|
}),
|
|
(e.prototype.redirect = function(t) {
|
|
for (var e = 1, r = this; null != (r = r.redirectedFrom()); )
|
|
if (++e > 20) throw new Error('Too many consecutive Transition redirects (20+)');
|
|
var n = { redirectedFrom: this, source: 'redirect' };
|
|
'url' === this.options().source && !1 !== t.options().location && (n.location = 'replace');
|
|
var i = G({}, this.options(), t.options(), n);
|
|
t = t.withOptions(i, !0);
|
|
var o,
|
|
a = this.router.transitionService.create(this._treeChanges.from, t),
|
|
u = this._treeChanges.entering,
|
|
s = a._treeChanges.entering;
|
|
return (
|
|
fe
|
|
.matching(s, u, fe.nonDynamicParams)
|
|
.filter(
|
|
f(
|
|
((o = t.options().reloadState),
|
|
function(t) {
|
|
return o && t.state.includes[o.name];
|
|
}),
|
|
),
|
|
)
|
|
.forEach(function(t, e) {
|
|
t.resolvables = u[e].resolvables;
|
|
}),
|
|
a
|
|
);
|
|
}),
|
|
(e.prototype._changedParams = function() {
|
|
var t = this._treeChanges;
|
|
if (
|
|
!this._options.reload &&
|
|
(!t.exiting.length &&
|
|
!t.entering.length &&
|
|
t.to.length === t.from.length &&
|
|
!Tt(t.to, t.from)
|
|
.map(function(t) {
|
|
return t[0].state !== t[1].state;
|
|
})
|
|
.reduce(mt, !1))
|
|
) {
|
|
var e = t.to.map(function(t) {
|
|
return t.paramSchema;
|
|
}),
|
|
r = [t.to, t.from].map(function(t) {
|
|
return t.map(function(t) {
|
|
return t.paramValues;
|
|
});
|
|
});
|
|
return Tt(e, r[0], r[1])
|
|
.map(function(t) {
|
|
var e = t[0],
|
|
r = t[1],
|
|
n = t[2];
|
|
return se.changed(e, r, n);
|
|
})
|
|
.reduce(yt, []);
|
|
}
|
|
}),
|
|
(e.prototype.dynamic = function() {
|
|
var t = this._changedParams();
|
|
return (
|
|
!!t &&
|
|
t
|
|
.map(function(t) {
|
|
return t.dynamic;
|
|
})
|
|
.reduce(mt, !1)
|
|
);
|
|
}),
|
|
(e.prototype.ignored = function() {
|
|
return !!this._ignoredReason();
|
|
}),
|
|
(e.prototype._ignoredReason = function() {
|
|
var t = this.router.globals.transition,
|
|
e = this._options.reloadState,
|
|
r = function(t, r) {
|
|
if (t.length !== r.length) return !1;
|
|
var n = fe.matching(t, r);
|
|
return (
|
|
t.length ===
|
|
n.filter(function(t) {
|
|
return !e || !t.state.includes[e.name];
|
|
}).length
|
|
);
|
|
},
|
|
n = this.treeChanges(),
|
|
i = t && t.treeChanges();
|
|
return i && r(i.to, n.to) && r(i.exiting, n.exiting)
|
|
? 'SameAsPending'
|
|
: 0 === n.exiting.length && 0 === n.entering.length && r(n.from, n.to)
|
|
? 'SameAsCurrent'
|
|
: void 0;
|
|
}),
|
|
(e.prototype.run = function() {
|
|
var e = this,
|
|
r = Xt.runAllHooks,
|
|
n = function(t) {
|
|
return e._hookBuilder.buildHooksForPhase(t);
|
|
},
|
|
i = n(t.TransitionHookPhase.BEFORE);
|
|
return (
|
|
Xt.invokeHooks(i, function() {
|
|
var t = e.router.globals;
|
|
return (
|
|
(t.lastStartedTransitionId = e.$id),
|
|
(t.transition = e),
|
|
t.transitionHistory.enqueue(e),
|
|
Kt.traceTransitionStart(e),
|
|
N.$q.when(void 0)
|
|
);
|
|
})
|
|
.then(function() {
|
|
var e = n(t.TransitionHookPhase.RUN);
|
|
return Xt.invokeHooks(e, function() {
|
|
return N.$q.when(void 0);
|
|
});
|
|
})
|
|
.then(
|
|
function() {
|
|
Kt.traceSuccess(e.$to(), e),
|
|
(e.success = !0),
|
|
e._deferred.resolve(e.to()),
|
|
r(n(t.TransitionHookPhase.SUCCESS));
|
|
},
|
|
function(i) {
|
|
Kt.traceError(i, e),
|
|
(e.success = !1),
|
|
e._deferred.reject(i),
|
|
(e._error = i),
|
|
r(n(t.TransitionHookPhase.ERROR));
|
|
},
|
|
),
|
|
this.promise
|
|
);
|
|
}),
|
|
(e.prototype.valid = function() {
|
|
return !this.error() || void 0 !== this.success;
|
|
}),
|
|
(e.prototype.abort = function() {
|
|
R(this.success) && (this._aborted = !0);
|
|
}),
|
|
(e.prototype.error = function() {
|
|
var t = this.$to();
|
|
if (t.self.abstract) return qt.invalid("Cannot transition to abstract state '" + t.name + "'");
|
|
var e = t.parameters(),
|
|
r = this.params(),
|
|
n = e.filter(function(t) {
|
|
return !t.validates(r[t.id]);
|
|
});
|
|
if (n.length) {
|
|
var i = n
|
|
.map(function(t) {
|
|
return '[' + t.id + ':' + ke(r[t.id]) + ']';
|
|
})
|
|
.join(', '),
|
|
o = "The following parameter values are not valid for state '" + t.name + "': " + i;
|
|
return qt.invalid(o);
|
|
}
|
|
return !1 === this.success ? this._error : void 0;
|
|
}),
|
|
(e.prototype.toString = function() {
|
|
var t = this.from(),
|
|
e = this.to(),
|
|
r = function(t) {
|
|
return null !== t['#'] && void 0 !== t['#'] ? t : st(t, ['#']);
|
|
};
|
|
return (
|
|
'Transition#' +
|
|
this.$id +
|
|
"( '" +
|
|
(x(t) ? t.name : t) +
|
|
"'" +
|
|
ke(r(this._treeChanges.from.map(u('paramValues')).reduce(ot, {}))) +
|
|
' -> ' +
|
|
(this.valid() ? '' : '(X) ') +
|
|
"'" +
|
|
(x(e) ? e.name : e) +
|
|
"'" +
|
|
ke(r(this.params())) +
|
|
' )'
|
|
);
|
|
}),
|
|
(e.diToken = e),
|
|
e
|
|
);
|
|
})();
|
|
function Se(t, e) {
|
|
return e.length <= t ? e : e.substr(0, t - 3) + '...';
|
|
}
|
|
function be(t, e) {
|
|
for (; e.length < t; ) e += ' ';
|
|
return e;
|
|
}
|
|
function Re(t) {
|
|
return t
|
|
.replace(/^([A-Z])/, function(t) {
|
|
return t.toLowerCase();
|
|
})
|
|
.replace(/([A-Z])/g, function(t) {
|
|
return '-' + t.toLowerCase();
|
|
});
|
|
}
|
|
function Ee(t) {
|
|
var e = Ce(t),
|
|
r = e.match(/^(function [^ ]+\([^)]*\))/),
|
|
n = r ? r[1] : e,
|
|
i = t.name || '';
|
|
return i && n.match(/function \(/) ? 'function ' + i + n.substr(9) : n;
|
|
}
|
|
function Ce(t) {
|
|
var e = V(t) ? t.slice(-1)[0] : t;
|
|
return (e && e.toString()) || 'undefined';
|
|
}
|
|
var Te = null,
|
|
Pe = function(t) {
|
|
var e = qt.isRejectionPromise;
|
|
return (Te =
|
|
Te ||
|
|
_([
|
|
[f(E), y('undefined')],
|
|
[C, y('null')],
|
|
[D, y('[Promise]')],
|
|
[
|
|
e,
|
|
function(t) {
|
|
return t._transitionRejection.toString();
|
|
},
|
|
],
|
|
[d(qt), g('toString')],
|
|
[d($e), g('toString')],
|
|
[d(he), g('toString')],
|
|
[H, Ee],
|
|
[y(!0), z],
|
|
]))(t);
|
|
};
|
|
function ke(t) {
|
|
var e = [];
|
|
return JSON.stringify(t, function(t, r) {
|
|
return (function(t) {
|
|
if (x(t)) {
|
|
if (-1 !== e.indexOf(t)) return '[circular ref]';
|
|
e.push(t);
|
|
}
|
|
return Pe(t);
|
|
})(r);
|
|
}).replace(/\\"/g, '"');
|
|
}
|
|
var Oe = function(t) {
|
|
return function(e) {
|
|
if (!e) return ['', ''];
|
|
var r = e.indexOf(t);
|
|
return -1 === r ? [e, ''] : [e.substr(0, r), e.substr(r + 1)];
|
|
};
|
|
},
|
|
xe = new RegExp('^(?:[a-z]+:)?//[^/]+/'),
|
|
Ve = function(t) {
|
|
return t.replace(/\/[^/]*$/, '');
|
|
},
|
|
Ie = Oe('#'),
|
|
je = Oe('?'),
|
|
Ae = Oe('='),
|
|
He = function(t) {
|
|
return t ? t.replace(/^#/, '') : '';
|
|
};
|
|
function De(t) {
|
|
var e = new RegExp('(' + t + ')', 'g');
|
|
return function(t) {
|
|
return t.split(e).filter(z);
|
|
};
|
|
}
|
|
function qe(t, e) {
|
|
return O(kt(t)) && O(e) ? t.slice(0, -1).concat(kt(t) + e) : _t(t, e);
|
|
}
|
|
var Ne,
|
|
Fe = (function() {
|
|
function t() {
|
|
(this.enqueue = !0),
|
|
(this.typeQueue = []),
|
|
(this.defaultTypes = ut(t.prototype, [
|
|
'hash',
|
|
'string',
|
|
'query',
|
|
'path',
|
|
'int',
|
|
'bool',
|
|
'date',
|
|
'json',
|
|
'any',
|
|
]));
|
|
this.types = K(
|
|
pt(this.defaultTypes, function(t, e) {
|
|
return new ie(G({ name: e }, t));
|
|
}),
|
|
{},
|
|
);
|
|
}
|
|
return (
|
|
(t.prototype.dispose = function() {
|
|
this.types = {};
|
|
}),
|
|
(t.prototype.type = function(t, e, r) {
|
|
if (!E(e)) return this.types[t];
|
|
if (this.types.hasOwnProperty(t)) throw new Error("A type named '" + t + "' has already been defined.");
|
|
return (
|
|
(this.types[t] = new ie(G({ name: t }, e))),
|
|
r && (this.typeQueue.push({ name: t, def: r }), this.enqueue || this._flushTypeQueue()),
|
|
this
|
|
);
|
|
}),
|
|
(t.prototype._flushTypeQueue = function() {
|
|
for (; this.typeQueue.length; ) {
|
|
var t = this.typeQueue.shift();
|
|
if (t.pattern) throw new Error("You cannot override a type's .pattern at runtime.");
|
|
G(this.types[t.name], N.$injector.invoke(t.def));
|
|
}
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
(Ne = function(t) {
|
|
var e = function(t) {
|
|
return null != t ? t.toString() : t;
|
|
},
|
|
r = {
|
|
encode: e,
|
|
decode: e,
|
|
is: d(String),
|
|
pattern: /.*/,
|
|
equals: function(t, e) {
|
|
return t == e;
|
|
},
|
|
};
|
|
return G({}, r, t);
|
|
}),
|
|
G(Fe.prototype, {
|
|
string: Ne({}),
|
|
path: Ne({ pattern: /[^/]*/ }),
|
|
query: Ne({}),
|
|
hash: Ne({ inherit: !1 }),
|
|
int: Ne({
|
|
decode: function(t) {
|
|
return parseInt(t, 10);
|
|
},
|
|
is: function(t) {
|
|
return !T(t) && this.decode(t.toString()) === t;
|
|
},
|
|
pattern: /-?\d+/,
|
|
}),
|
|
bool: Ne({
|
|
encode: function(t) {
|
|
return t ? 1 : 0;
|
|
},
|
|
decode: function(t) {
|
|
return 0 !== parseInt(t, 10);
|
|
},
|
|
is: d(Boolean),
|
|
pattern: /0|1/,
|
|
}),
|
|
date: Ne({
|
|
encode: function(t) {
|
|
return this.is(t)
|
|
? [t.getFullYear(), ('0' + (t.getMonth() + 1)).slice(-2), ('0' + t.getDate()).slice(-2)].join('-')
|
|
: void 0;
|
|
},
|
|
decode: function(t) {
|
|
if (this.is(t)) return t;
|
|
var e = this.capture.exec(t);
|
|
return e ? new Date(e[1], e[2] - 1, e[3]) : void 0;
|
|
},
|
|
is: function(t) {
|
|
return t instanceof Date && !isNaN(t.valueOf());
|
|
},
|
|
equals: function(t, e) {
|
|
return ['getFullYear', 'getMonth', 'getDate'].reduce(function(r, n) {
|
|
return r && t[n]() === e[n]();
|
|
}, !0);
|
|
},
|
|
pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,
|
|
capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,
|
|
}),
|
|
json: Ne({ encode: M, decode: L, is: d(Object), equals: W, pattern: /[^/]*/ }),
|
|
any: Ne({
|
|
encode: z,
|
|
decode: z,
|
|
is: function() {
|
|
return !0;
|
|
},
|
|
equals: W,
|
|
}),
|
|
});
|
|
var Ue = (function() {
|
|
function t(t) {
|
|
void 0 === t && (t = {}), G(this, t);
|
|
}
|
|
return (
|
|
(t.prototype.$inherit = function(t, e, r) {
|
|
var n,
|
|
i = at(e, r),
|
|
o = {},
|
|
a = [];
|
|
for (var u in i)
|
|
if (i[u] && i[u].params && (n = Object.keys(i[u].params)).length)
|
|
for (var s in n) a.indexOf(n[s]) >= 0 || (a.push(n[s]), (o[n[s]] = this[n[s]]));
|
|
return G({}, o, t);
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
function Le(t) {
|
|
return t.name;
|
|
}
|
|
function Me(t) {
|
|
return (
|
|
(t.self.$$state = function() {
|
|
return t;
|
|
}),
|
|
t.self
|
|
);
|
|
}
|
|
function Be(t) {
|
|
return t.parent && t.parent.data && (t.data = t.self.data = K(t.parent.data, t.data)), t.data;
|
|
}
|
|
var Ge = function(t, e) {
|
|
return function(r) {
|
|
var n = r;
|
|
n && n.url && n.name && n.name.match(/\.\*\*$/) && (n.url += '{remainder:any}');
|
|
var i = (function(t) {
|
|
if (!O(t)) return !1;
|
|
var e = '^' === t.charAt(0);
|
|
return { val: e ? t.substring(1) : t, root: e };
|
|
})(n.url),
|
|
o = r.parent,
|
|
a = i
|
|
? t.compile(i.val, {
|
|
params: r.params || {},
|
|
paramMap: function(t, e) {
|
|
return !1 === n.reloadOnSearch && e && (t = G(t || {}, { dynamic: !0 })), t;
|
|
},
|
|
})
|
|
: n.url;
|
|
if (!a) return null;
|
|
if (!t.isMatcher(a)) throw new Error("Invalid url '" + a + "' in state '" + r + "'");
|
|
return i && i.root ? a : ((o && o.navigable) || e()).url.append(a);
|
|
};
|
|
},
|
|
We = function(t) {
|
|
return function(e) {
|
|
return !t(e) && e.url ? e : e.parent ? e.parent.navigable : null;
|
|
};
|
|
},
|
|
ze = function(t) {
|
|
return function(e) {
|
|
var r = (e.url && e.url.parameters({ inherit: !1 })) || [],
|
|
n = vt(
|
|
ht(st(e.params || {}, r.map(u('id'))), function(e, r) {
|
|
return t.fromConfig(r, null, e);
|
|
}),
|
|
);
|
|
return r
|
|
.concat(n)
|
|
.map(function(t) {
|
|
return [t.id, t];
|
|
})
|
|
.reduce(Pt, {});
|
|
};
|
|
};
|
|
function Je(t) {
|
|
return t.parent ? t.parent.path.concat(t) : [t];
|
|
}
|
|
function Qe(t) {
|
|
var e = t.parent ? G({}, t.parent.includes) : {};
|
|
return (e[t.name] = !0), e;
|
|
}
|
|
function Ke(t) {
|
|
var e,
|
|
r,
|
|
n = function(t) {
|
|
return t.provide || t.token;
|
|
},
|
|
i = _([
|
|
[
|
|
u('resolveFn'),
|
|
function(t) {
|
|
return new he(n(t), t.resolveFn, t.deps, t.policy);
|
|
},
|
|
],
|
|
[
|
|
u('useFactory'),
|
|
function(t) {
|
|
return new he(n(t), t.useFactory, t.deps || t.dependencies, t.policy);
|
|
},
|
|
],
|
|
[
|
|
u('useClass'),
|
|
function(t) {
|
|
return new he(
|
|
n(t),
|
|
function() {
|
|
return new t.useClass();
|
|
},
|
|
[],
|
|
t.policy,
|
|
);
|
|
},
|
|
],
|
|
[
|
|
u('useValue'),
|
|
function(t) {
|
|
return new he(
|
|
n(t),
|
|
function() {
|
|
return t.useValue;
|
|
},
|
|
[],
|
|
t.policy,
|
|
t.useValue,
|
|
);
|
|
},
|
|
],
|
|
[
|
|
u('useExisting'),
|
|
function(t) {
|
|
return new he(n(t), z, [t.useExisting], t.policy);
|
|
},
|
|
],
|
|
]),
|
|
o = _([
|
|
[
|
|
a(u('val'), O),
|
|
function(t) {
|
|
return new he(t.token, z, [t.val], t.policy);
|
|
},
|
|
],
|
|
[
|
|
a(u('val'), V),
|
|
function(t) {
|
|
return new he(t.token, kt(t.val), t.val.slice(0, -1), t.policy);
|
|
},
|
|
],
|
|
[
|
|
a(u('val'), P),
|
|
function(t) {
|
|
return new he(
|
|
t.token,
|
|
t.val,
|
|
((e = t.val), (r = N.$injector), e.$inject || (r && r.annotate(e, r.strictDi)) || 'deferred'),
|
|
t.policy,
|
|
);
|
|
var e, r;
|
|
},
|
|
],
|
|
]),
|
|
s = _([
|
|
[
|
|
d(he),
|
|
function(t) {
|
|
return t;
|
|
},
|
|
],
|
|
[
|
|
function(t) {
|
|
return !(!t.token || !t.resolveFn);
|
|
},
|
|
i,
|
|
],
|
|
[
|
|
function(t) {
|
|
return !((!t.provide && !t.token) || !(t.useValue || t.useFactory || t.useExisting || t.useClass));
|
|
},
|
|
i,
|
|
],
|
|
[
|
|
function(t) {
|
|
return !!(t && t.val && (O(t.val) || V(t.val) || P(t.val)));
|
|
},
|
|
o,
|
|
],
|
|
[
|
|
y(!0),
|
|
function(t) {
|
|
throw new Error('Invalid resolve value: ' + ke(t));
|
|
},
|
|
],
|
|
]),
|
|
c = t.resolve;
|
|
return (V(c)
|
|
? c
|
|
: ((e = c),
|
|
(r = t.resolvePolicy || {}),
|
|
Object.keys(e || {}).map(function(t) {
|
|
return { token: t, val: e[t], deps: void 0, policy: r[t] };
|
|
}))
|
|
).map(s);
|
|
}
|
|
var Ye = (function() {
|
|
function t(t, e) {
|
|
this.matcher = t;
|
|
var r = this,
|
|
n = function() {
|
|
return t.find('');
|
|
},
|
|
i = function(t) {
|
|
return '' === t.name;
|
|
};
|
|
this.builders = {
|
|
name: [Le],
|
|
self: [Me],
|
|
parent: [
|
|
function(e) {
|
|
return i(e) ? null : t.find(r.parentName(e)) || n();
|
|
},
|
|
],
|
|
data: [Be],
|
|
url: [Ge(e, n)],
|
|
navigable: [We(i)],
|
|
params: [ze(e.paramFactory)],
|
|
views: [],
|
|
path: [Je],
|
|
includes: [Qe],
|
|
resolvables: [Ke],
|
|
};
|
|
}
|
|
return (
|
|
(t.prototype.builder = function(t, e) {
|
|
var r = this.builders,
|
|
n = r[t] || [];
|
|
return O(t) && !E(e)
|
|
? n.length > 1
|
|
? n
|
|
: n[0]
|
|
: O(t) && P(e)
|
|
? ((r[t] = n),
|
|
r[t].push(e),
|
|
function() {
|
|
return r[t].splice(r[t].indexOf(e, 1)) && null;
|
|
})
|
|
: void 0;
|
|
}),
|
|
(t.prototype.build = function(t) {
|
|
var e = this.matcher,
|
|
r = this.builders,
|
|
n = this.parentName(t);
|
|
if (n && !e.find(n, void 0, !1)) return null;
|
|
for (var i in r)
|
|
if (r.hasOwnProperty(i)) {
|
|
var o = r[i].reduce(function(t, e) {
|
|
return function(r) {
|
|
return e(r, t);
|
|
};
|
|
}, J);
|
|
t[i] = o(t);
|
|
}
|
|
return t;
|
|
}),
|
|
(t.prototype.parentName = function(t) {
|
|
var e = t.name || '',
|
|
r = e.split('.');
|
|
if (('**' === r.pop() && r.pop(), r.length)) {
|
|
if (t.parent)
|
|
throw new Error(
|
|
"States that specify the 'parent:' property should not have a '.' in their name (" + e + ')',
|
|
);
|
|
return r.join('.');
|
|
}
|
|
return t.parent ? (O(t.parent) ? t.parent : t.parent.name) : '';
|
|
}),
|
|
(t.prototype.name = function(t) {
|
|
var e = t.name;
|
|
if (-1 !== e.indexOf('.') || !t.parent) return e;
|
|
var r = O(t.parent) ? t.parent : t.parent.name;
|
|
return r ? r + '.' + e : e;
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
Ze = (function() {
|
|
function t(t) {
|
|
this._states = t;
|
|
}
|
|
return (
|
|
(t.prototype.isRelative = function(t) {
|
|
return 0 === (t = t || '').indexOf('.') || 0 === t.indexOf('^');
|
|
}),
|
|
(t.prototype.find = function(t, e, r) {
|
|
if ((void 0 === r && (r = !0), t || '' === t)) {
|
|
var n = O(t),
|
|
i = n ? t : t.name;
|
|
this.isRelative(i) && (i = this.resolvePath(i, e));
|
|
var o = this._states[i];
|
|
if (o && (n || !(n || (o !== t && o.self !== t)))) return o;
|
|
if (n && r) {
|
|
var a = vt(this._states).filter(function(t) {
|
|
return t.__stateObjectCache.nameGlob && t.__stateObjectCache.nameGlob.matches(i);
|
|
});
|
|
return (
|
|
a.length > 1 &&
|
|
console.log(
|
|
'stateMatcher.find: Found multiple matches for ' + i + ' using glob: ',
|
|
a.map(function(t) {
|
|
return t.name;
|
|
}),
|
|
),
|
|
a[0]
|
|
);
|
|
}
|
|
}
|
|
}),
|
|
(t.prototype.resolvePath = function(t, e) {
|
|
if (!e) throw new Error("No reference point given for path '" + t + "'");
|
|
for (var r = this.find(e), n = t.split('.'), i = n.length, o = 0, a = r; o < i; o++)
|
|
if ('' !== n[o] || 0 !== o) {
|
|
if ('^' !== n[o]) break;
|
|
if (!a.parent) throw new Error("Path '" + t + "' not valid for state '" + r.name + "'");
|
|
a = a.parent;
|
|
} else a = r;
|
|
var u = n.slice(o).join('.');
|
|
return a.name + (a.name && u ? '.' : '') + u;
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
Xe = (function() {
|
|
function t(t, e, r, n, i) {
|
|
(this.$registry = t),
|
|
(this.$urlRouter = e),
|
|
(this.states = r),
|
|
(this.builder = n),
|
|
(this.listeners = i),
|
|
(this.queue = []),
|
|
(this.matcher = t.matcher);
|
|
}
|
|
return (
|
|
(t.prototype.dispose = function() {
|
|
this.queue = [];
|
|
}),
|
|
(t.prototype.register = function(t) {
|
|
var e = this.queue,
|
|
r = $.create(t),
|
|
n = r.name;
|
|
if (!O(n)) throw new Error('State must have a valid name');
|
|
if (this.states.hasOwnProperty(n) || Y(e.map(u('name')), n))
|
|
throw new Error("State '" + n + "' is already defined");
|
|
return e.push(r), this.flush(), r;
|
|
}),
|
|
(t.prototype.flush = function() {
|
|
for (
|
|
var t = this,
|
|
e = this.queue,
|
|
r = this.states,
|
|
n = this.builder,
|
|
i = [],
|
|
o = [],
|
|
a = {},
|
|
u = function(e) {
|
|
return t.states.hasOwnProperty(e) && t.states[e];
|
|
},
|
|
s = function() {
|
|
i.length &&
|
|
t.listeners.forEach(function(t) {
|
|
return t(
|
|
'registered',
|
|
i.map(function(t) {
|
|
return t.self;
|
|
}),
|
|
);
|
|
});
|
|
};
|
|
e.length > 0;
|
|
|
|
) {
|
|
var c = e.shift(),
|
|
f = c.name,
|
|
l = n.build(c),
|
|
h = o.indexOf(c);
|
|
if (l) {
|
|
var p = u(f);
|
|
if (p && p.name === f) throw new Error("State '" + f + "' is already defined");
|
|
var v = u(f + '.**');
|
|
v && this.$registry.deregister(v), (r[f] = c), this.attachRoute(c), h >= 0 && o.splice(h, 1), i.push(c);
|
|
} else {
|
|
var d = a[f];
|
|
if (((a[f] = e.length), h >= 0 && d === e.length)) return e.push(c), s(), r;
|
|
h < 0 && o.push(c), e.push(c);
|
|
}
|
|
}
|
|
return s(), r;
|
|
}),
|
|
(t.prototype.attachRoute = function(t) {
|
|
!t.abstract && t.url && this.$urlRouter.rule(this.$urlRouter.urlRuleFactory.create(t));
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
tr = (function() {
|
|
function t(t) {
|
|
(this._router = t),
|
|
(this.states = {}),
|
|
(this.listeners = []),
|
|
(this.matcher = new Ze(this.states)),
|
|
(this.builder = new Ye(this.matcher, t.urlMatcherFactory)),
|
|
(this.stateQueue = new Xe(this, t.urlRouter, this.states, this.builder, this.listeners)),
|
|
this._registerRoot();
|
|
}
|
|
return (
|
|
(t.prototype._registerRoot = function() {
|
|
(this._root = this.stateQueue.register({
|
|
name: '',
|
|
url: '^',
|
|
views: null,
|
|
params: { '#': { value: null, type: 'hash', dynamic: !0 } },
|
|
abstract: !0,
|
|
})).navigable = null;
|
|
}),
|
|
(t.prototype.dispose = function() {
|
|
var t = this;
|
|
this.stateQueue.dispose(),
|
|
(this.listeners = []),
|
|
this.get().forEach(function(e) {
|
|
return t.get(e) && t.deregister(e);
|
|
});
|
|
}),
|
|
(t.prototype.onStatesChanged = function(t) {
|
|
return (
|
|
this.listeners.push(t),
|
|
function() {
|
|
X(this.listeners)(t);
|
|
}.bind(this)
|
|
);
|
|
}),
|
|
(t.prototype.root = function() {
|
|
return this._root;
|
|
}),
|
|
(t.prototype.register = function(t) {
|
|
return this.stateQueue.register(t);
|
|
}),
|
|
(t.prototype._deregisterTree = function(t) {
|
|
var e = this,
|
|
r = this.get().map(function(t) {
|
|
return t.$$state();
|
|
}),
|
|
n = function(t) {
|
|
var e = r.filter(function(e) {
|
|
return -1 !== t.indexOf(e.parent);
|
|
});
|
|
return 0 === e.length ? e : e.concat(n(e));
|
|
},
|
|
i = n([t]),
|
|
o = [t].concat(i).reverse();
|
|
return (
|
|
o.forEach(function(t) {
|
|
var r = e._router.urlRouter;
|
|
r
|
|
.rules()
|
|
.filter(s('state', t))
|
|
.forEach(r.removeRule.bind(r)),
|
|
delete e.states[t.name];
|
|
}),
|
|
o
|
|
);
|
|
}),
|
|
(t.prototype.deregister = function(t) {
|
|
var e = this.get(t);
|
|
if (!e) throw new Error("Can't deregister state; not found: " + t);
|
|
var r = this._deregisterTree(e.$$state());
|
|
return (
|
|
this.listeners.forEach(function(t) {
|
|
return t(
|
|
'deregistered',
|
|
r.map(function(t) {
|
|
return t.self;
|
|
}),
|
|
);
|
|
}),
|
|
r
|
|
);
|
|
}),
|
|
(t.prototype.get = function(t, e) {
|
|
var r = this;
|
|
if (0 === arguments.length)
|
|
return Object.keys(this.states).map(function(t) {
|
|
return r.states[t].self;
|
|
});
|
|
var n = this.matcher.find(t, e);
|
|
return (n && n.self) || null;
|
|
}),
|
|
(t.prototype.decorator = function(t, e) {
|
|
return this.builder.builder(t, e);
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
function er(t, e) {
|
|
var r = ['', ''],
|
|
n = t.replace(/[\\\[\]\^$*+?.()|{}]/g, '\\$&');
|
|
if (!e) return n;
|
|
switch (e.squash) {
|
|
case !1:
|
|
r = ['(', ')' + (e.isOptional ? '?' : '')];
|
|
break;
|
|
case !0:
|
|
(n = n.replace(/\/$/, '')), (r = ['(?:/(', ')|/)?']);
|
|
break;
|
|
default:
|
|
r = ['(' + e.squash + '|', ')?'];
|
|
}
|
|
return n + r[0] + e.type.pattern.source + r[1];
|
|
}
|
|
var rr = De('/'),
|
|
nr = (function() {
|
|
function e(t, r, n, i) {
|
|
var o = this;
|
|
(this.config = i),
|
|
(this._cache = { path: [this] }),
|
|
(this._children = []),
|
|
(this._params = []),
|
|
(this._segments = []),
|
|
(this._compiled = []),
|
|
(this.pattern = t),
|
|
(this.config = it(this.config, { params: {}, strict: !0, caseInsensitive: !1, paramMap: z }));
|
|
for (
|
|
var a,
|
|
u,
|
|
c,
|
|
f = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
|
|
l = /([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
|
|
h = [],
|
|
p = 0,
|
|
v = function(r) {
|
|
if (!e.nameValidator.test(r))
|
|
throw new Error("Invalid parameter name '" + r + "' in pattern '" + t + "'");
|
|
if (lt(o._params, s('id', r)))
|
|
throw new Error("Duplicate parameter name '" + r + "' in pattern '" + t + "'");
|
|
},
|
|
d = function(e, n) {
|
|
var i,
|
|
a = e[2] || e[3],
|
|
u = n ? e[4] : e[4] || ('*' === e[1] ? '[\\s\\S]*' : null);
|
|
return {
|
|
id: a,
|
|
regexp: u,
|
|
cfg: o.config.params[a],
|
|
segment: t.substring(p, e.index),
|
|
type: u
|
|
? r.type(u) ||
|
|
((i = u),
|
|
K(r.type(n ? 'query' : 'path'), {
|
|
pattern: new RegExp(i, o.config.caseInsensitive ? 'i' : void 0),
|
|
}))
|
|
: null,
|
|
};
|
|
};
|
|
(a = f.exec(t)) && !((u = d(a, !1)).segment.indexOf('?') >= 0);
|
|
|
|
)
|
|
v(u.id),
|
|
this._params.push(n.fromPath(u.id, u.type, this.config.paramMap(u.cfg, !1))),
|
|
this._segments.push(u.segment),
|
|
h.push([u.segment, kt(this._params)]),
|
|
(p = f.lastIndex);
|
|
var m = (c = t.substring(p)).indexOf('?');
|
|
if (m >= 0) {
|
|
var y = c.substring(m);
|
|
if (((c = c.substring(0, m)), y.length > 0))
|
|
for (p = 0; (a = l.exec(y)); )
|
|
v((u = d(a, !0)).id),
|
|
this._params.push(n.fromSearch(u.id, u.type, this.config.paramMap(u.cfg, !0))),
|
|
(p = f.lastIndex);
|
|
}
|
|
this._segments.push(c),
|
|
(this._compiled = h
|
|
.map(function(t) {
|
|
return er.apply(null, t);
|
|
})
|
|
.concat(er(c)));
|
|
}
|
|
return (
|
|
(e.encodeDashes = function(t) {
|
|
return encodeURIComponent(t).replace(/-/g, function(t) {
|
|
return (
|
|
'%5C%' +
|
|
t
|
|
.charCodeAt(0)
|
|
.toString(16)
|
|
.toUpperCase()
|
|
);
|
|
});
|
|
}),
|
|
(e.pathSegmentsAndParams = function(e) {
|
|
return Tt(
|
|
e._segments,
|
|
e._params
|
|
.filter(function(e) {
|
|
return e.location === t.DefType.PATH;
|
|
})
|
|
.concat(void 0),
|
|
)
|
|
.reduce(yt, [])
|
|
.filter(function(t) {
|
|
return '' !== t && E(t);
|
|
});
|
|
}),
|
|
(e.queryParams = function(e) {
|
|
return e._params.filter(function(e) {
|
|
return e.location === t.DefType.SEARCH;
|
|
});
|
|
}),
|
|
(e.compare = function(t, r) {
|
|
var n = function(t) {
|
|
return (t._cache.weights =
|
|
t._cache.weights ||
|
|
(function(t) {
|
|
return (t._cache.segments =
|
|
t._cache.segments ||
|
|
t._cache.path
|
|
.map(e.pathSegmentsAndParams)
|
|
.reduce(yt, [])
|
|
.reduce(qe, [])
|
|
.map(function(t) {
|
|
return O(t) ? rr(t) : t;
|
|
})
|
|
.reduce(yt, []));
|
|
})(t).map(function(t) {
|
|
return '/' === t ? 1 : O(t) ? 2 : t instanceof se ? 3 : void 0;
|
|
}));
|
|
},
|
|
i = n(t),
|
|
o = n(r);
|
|
!(function(t, e, r) {
|
|
for (var n = Math.max(t.length, e.length); t.length < n; ) t.push(r);
|
|
for (; e.length < n; ) e.push(r);
|
|
})(i, o, 0);
|
|
var a,
|
|
u,
|
|
s = Tt(i, o);
|
|
for (u = 0; u < s.length; u++) if (0 !== (a = s[u][0] - s[u][1])) return a;
|
|
return 0;
|
|
}),
|
|
(e.prototype.append = function(t) {
|
|
return (
|
|
this._children.push(t), (t._cache = { path: this._cache.path.concat(t), parent: this, pattern: null }), t
|
|
);
|
|
}),
|
|
(e.prototype.isRoot = function() {
|
|
return this._cache.path[0] === this;
|
|
}),
|
|
(e.prototype.toString = function() {
|
|
return this.pattern;
|
|
}),
|
|
(e.prototype.exec = function(t, e, r, n) {
|
|
var i = this;
|
|
void 0 === e && (e = {}), void 0 === n && (n = {});
|
|
var o,
|
|
a,
|
|
s,
|
|
c = ((o = this._cache),
|
|
(a = 'pattern'),
|
|
(s = function() {
|
|
return new RegExp(
|
|
['^', $t(i._cache.path.map(u('_compiled'))).join(''), !1 === i.config.strict ? '/?' : '', '$'].join(''),
|
|
i.config.caseInsensitive ? 'i' : void 0,
|
|
);
|
|
}),
|
|
(o[a] = o[a] || s())).exec(t);
|
|
if (!c) return null;
|
|
var f,
|
|
l = this.parameters(),
|
|
h = l.filter(function(t) {
|
|
return !t.isSearch();
|
|
}),
|
|
p = l.filter(function(t) {
|
|
return t.isSearch();
|
|
}),
|
|
v = this._cache.path
|
|
.map(function(t) {
|
|
return t._segments.length - 1;
|
|
})
|
|
.reduce(function(t, e) {
|
|
return t + e;
|
|
}),
|
|
d = {};
|
|
if (v !== c.length - 1) throw new Error("Unbalanced capture group in route '" + this.pattern + "'");
|
|
for (var m = 0; m < v; m++) {
|
|
for (var y = h[m], g = c[m + 1], _ = 0; _ < y.replace.length; _++)
|
|
y.replace[_].from === g && (g = y.replace[_].to);
|
|
g &&
|
|
!0 === y.array &&
|
|
(void 0,
|
|
(g = pt(
|
|
pt(
|
|
(f = function(t) {
|
|
return t
|
|
.split('')
|
|
.reverse()
|
|
.join('');
|
|
})(g).split(/-(?!\\)/),
|
|
f,
|
|
),
|
|
function(t) {
|
|
return t.replace(/\\-/g, '-');
|
|
},
|
|
).reverse())),
|
|
E(g) && (g = y.type.decode(g)),
|
|
(d[y.id] = y.value(g));
|
|
}
|
|
return (
|
|
p.forEach(function(t) {
|
|
for (var r = e[t.id], n = 0; n < t.replace.length; n++) t.replace[n].from === r && (r = t.replace[n].to);
|
|
E(r) && (r = t.type.decode(r)), (d[t.id] = t.value(r));
|
|
}),
|
|
r && (d['#'] = r),
|
|
d
|
|
);
|
|
}),
|
|
(e.prototype.parameters = function(t) {
|
|
return (
|
|
void 0 === t && (t = {}),
|
|
!1 === t.inherit
|
|
? this._params
|
|
: $t(
|
|
this._cache.path.map(function(t) {
|
|
return t._params;
|
|
}),
|
|
)
|
|
);
|
|
}),
|
|
(e.prototype.parameter = function(t, e) {
|
|
var r = this;
|
|
void 0 === e && (e = {});
|
|
var n = this._cache.parent;
|
|
return (
|
|
(function() {
|
|
for (var e = 0, n = r._params; e < n.length; e++) {
|
|
var i = n[e];
|
|
if (i.id === t) return i;
|
|
}
|
|
})() ||
|
|
(!1 !== e.inherit && n && n.parameter(t, e)) ||
|
|
null
|
|
);
|
|
}),
|
|
(e.prototype.validates = function(t) {
|
|
return (
|
|
(t = t || {}),
|
|
this.parameters()
|
|
.filter(function(e) {
|
|
return t.hasOwnProperty(e.id);
|
|
})
|
|
.map(function(e) {
|
|
return (r = e), (n = t[e.id]), !r || r.validates(n);
|
|
var r, n;
|
|
})
|
|
.reduce(dt, !0)
|
|
);
|
|
}),
|
|
(e.prototype.format = function(t) {
|
|
void 0 === t && (t = {});
|
|
var r = this._cache.path,
|
|
n = r
|
|
.map(e.pathSegmentsAndParams)
|
|
.reduce(yt, [])
|
|
.map(function(t) {
|
|
return O(t) ? t : o(t);
|
|
}),
|
|
i = r
|
|
.map(e.queryParams)
|
|
.reduce(yt, [])
|
|
.map(o);
|
|
if (
|
|
n.concat(i).filter(function(t) {
|
|
return !1 === t.isValid;
|
|
}).length
|
|
)
|
|
return null;
|
|
function o(e) {
|
|
var r = e.value(t[e.id]),
|
|
n = e.validates(r),
|
|
i = e.isDefaultValue(r);
|
|
return {
|
|
param: e,
|
|
value: r,
|
|
isValid: n,
|
|
isDefaultValue: i,
|
|
squash: !!i && e.squash,
|
|
encoded: e.type.encode(r),
|
|
};
|
|
}
|
|
var a = n.reduce(function(t, r) {
|
|
if (O(r)) return t + r;
|
|
var n = r.squash,
|
|
i = r.encoded,
|
|
o = r.param;
|
|
return !0 === n
|
|
? t.match(/\/$/)
|
|
? t.slice(0, -1)
|
|
: t
|
|
: O(n)
|
|
? t + n
|
|
: !1 !== n
|
|
? t
|
|
: null == i
|
|
? t
|
|
: V(i)
|
|
? t + pt(i, e.encodeDashes).join('-')
|
|
: o.raw
|
|
? t + i
|
|
: t + encodeURIComponent(i);
|
|
}, ''),
|
|
u = i
|
|
.map(function(t) {
|
|
var e = t.param,
|
|
r = t.squash,
|
|
n = t.encoded,
|
|
i = t.isDefaultValue;
|
|
if (!(null == n || (i && !1 !== r)) && (V(n) || (n = [n]), 0 !== n.length))
|
|
return (
|
|
e.raw || (n = pt(n, encodeURIComponent)),
|
|
n.map(function(t) {
|
|
return e.id + '=' + t;
|
|
})
|
|
);
|
|
})
|
|
.filter(z)
|
|
.reduce(yt, [])
|
|
.join('&');
|
|
return a + (u ? '?' + u : '') + (t['#'] ? '#' + t['#'] : '');
|
|
}),
|
|
(e.nameValidator = /^\w+([-.]+\w+)*(?:\[\])?$/),
|
|
e
|
|
);
|
|
})(),
|
|
ir = (function() {
|
|
function e() {
|
|
var e = this;
|
|
(this.paramTypes = new Fe()),
|
|
(this._isCaseInsensitive = !1),
|
|
(this._isStrictMode = !0),
|
|
(this._defaultSquashPolicy = !1),
|
|
(this.paramFactory = {
|
|
fromConfig: function(r, n, i) {
|
|
return new se(r, n, i, t.DefType.CONFIG, e);
|
|
},
|
|
fromPath: function(r, n, i) {
|
|
return new se(r, n, i, t.DefType.PATH, e);
|
|
},
|
|
fromSearch: function(r, n, i) {
|
|
return new se(r, n, i, t.DefType.SEARCH, e);
|
|
},
|
|
}),
|
|
(this._getConfig = function(t) {
|
|
return G({ strict: e._isStrictMode, caseInsensitive: e._isCaseInsensitive }, t);
|
|
}),
|
|
G(this, { UrlMatcher: nr, Param: se });
|
|
}
|
|
return (
|
|
(e.prototype.caseInsensitive = function(t) {
|
|
return (this._isCaseInsensitive = E(t) ? t : this._isCaseInsensitive);
|
|
}),
|
|
(e.prototype.strictMode = function(t) {
|
|
return (this._isStrictMode = E(t) ? t : this._isStrictMode);
|
|
}),
|
|
(e.prototype.defaultSquashPolicy = function(t) {
|
|
if (E(t) && !0 !== t && !1 !== t && !O(t))
|
|
throw new Error('Invalid squash policy: ' + t + '. Valid policies: false, true, arbitrary-string');
|
|
return (this._defaultSquashPolicy = E(t) ? t : this._defaultSquashPolicy);
|
|
}),
|
|
(e.prototype.compile = function(t, e) {
|
|
return new nr(t, this.paramTypes, this.paramFactory, this._getConfig(e));
|
|
}),
|
|
(e.prototype.isMatcher = function(t) {
|
|
if (!x(t)) return !1;
|
|
var e = !0;
|
|
return (
|
|
B(nr.prototype, function(r, n) {
|
|
P(r) && (e = e && E(t[n]) && P(t[n]));
|
|
}),
|
|
e
|
|
);
|
|
}),
|
|
(e.prototype.type = function(t, e, r) {
|
|
var n = this.paramTypes.type(t, e, r);
|
|
return E(e) ? this : n;
|
|
}),
|
|
(e.prototype.$get = function() {
|
|
return (this.paramTypes.enqueue = !1), this.paramTypes._flushTypeQueue(), this;
|
|
}),
|
|
(e.prototype.dispose = function() {
|
|
this.paramTypes.dispose();
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
or = (function() {
|
|
function t(t) {
|
|
this.router = t;
|
|
}
|
|
return (
|
|
(t.prototype.compile = function(t) {
|
|
return this.router.urlMatcherFactory.compile(t);
|
|
}),
|
|
(t.prototype.create = function(t, e) {
|
|
var r = this,
|
|
n = _([
|
|
[
|
|
O,
|
|
function(t) {
|
|
return n(r.compile(t));
|
|
},
|
|
],
|
|
[
|
|
d(nr),
|
|
function(t) {
|
|
return r.fromUrlMatcher(t, e);
|
|
},
|
|
],
|
|
[
|
|
A,
|
|
function(t) {
|
|
return r.fromState(t, r.router);
|
|
},
|
|
],
|
|
[
|
|
d(RegExp),
|
|
function(t) {
|
|
return r.fromRegExp(t, e);
|
|
},
|
|
],
|
|
[
|
|
P,
|
|
function(t) {
|
|
return new ar(t, e);
|
|
},
|
|
],
|
|
]),
|
|
i = n(t);
|
|
if (!i) throw new Error("invalid 'what' in when()");
|
|
return i;
|
|
}),
|
|
(t.prototype.fromUrlMatcher = function(t, e) {
|
|
var r = e;
|
|
O(e) && (e = this.router.urlMatcherFactory.compile(e)),
|
|
d(nr)(e) &&
|
|
(r = function(t) {
|
|
return e.format(t);
|
|
});
|
|
var n = {
|
|
urlMatcher: t,
|
|
matchPriority: function(e) {
|
|
var r = t.parameters().filter(function(t) {
|
|
return t.isOptional;
|
|
});
|
|
return r.length
|
|
? r.filter(function(t) {
|
|
return e[t.id];
|
|
}).length / r.length
|
|
: 1e-6;
|
|
},
|
|
type: 'URLMATCHER',
|
|
};
|
|
return G(
|
|
new ar(function(e) {
|
|
var r = t.exec(e.path, e.search, e.hash);
|
|
return t.validates(r) && r;
|
|
}, r),
|
|
n,
|
|
);
|
|
}),
|
|
(t.prototype.fromState = function(t, e) {
|
|
var r = { state: t, type: 'STATE' };
|
|
return G(
|
|
this.fromUrlMatcher(t.url, function(r) {
|
|
var n = e.stateService,
|
|
i = e.globals;
|
|
n.href(t, r) !== n.href(i.current, i.params) && n.transitionTo(t, r, { inherit: !0, source: 'url' });
|
|
}),
|
|
r,
|
|
);
|
|
}),
|
|
(t.prototype.fromRegExp = function(t, e) {
|
|
if (t.global || t.sticky) throw new Error('Rule RegExp must not be global or sticky');
|
|
var r = O(e)
|
|
? function(t) {
|
|
return e.replace(/\$(\$|\d{1,2})/, function(e, r) {
|
|
return t['$' === r ? 0 : Number(r)];
|
|
});
|
|
}
|
|
: e,
|
|
n = { regexp: t, type: 'REGEXP' };
|
|
return G(
|
|
new ar(function(e) {
|
|
return t.exec(e.path);
|
|
}, r),
|
|
n,
|
|
);
|
|
}),
|
|
(t.isUrlRule = function(t) {
|
|
return (
|
|
t &&
|
|
['type', 'match', 'handler'].every(function(e) {
|
|
return E(t[e]);
|
|
})
|
|
);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
ar = (function() {
|
|
return function(t, e) {
|
|
var r = this;
|
|
(this.match = t),
|
|
(this.type = 'RAW'),
|
|
(this.matchPriority = function(t) {
|
|
return 0 - r.$id;
|
|
}),
|
|
(this.handler = e || z);
|
|
};
|
|
})();
|
|
var ur;
|
|
ur = function(t, e) {
|
|
var r = (function(t, e) {
|
|
return (e.priority || 0) - (t.priority || 0);
|
|
})(t, e);
|
|
return 0 !== r
|
|
? r
|
|
: 0 !==
|
|
(r = (function(t, e) {
|
|
var r = { STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1 };
|
|
return (r[t.type] || 0) - (r[e.type] || 0);
|
|
})(t, e))
|
|
? r
|
|
: 0 !==
|
|
(r = (function(t, e) {
|
|
return t.urlMatcher && e.urlMatcher ? nr.compare(t.urlMatcher, e.urlMatcher) : 0;
|
|
})(t, e))
|
|
? r
|
|
: (function(t, e) {
|
|
var r = { STATE: !0, URLMATCHER: !0 };
|
|
return r[t.type] && r[e.type] ? 0 : (t.$id || 0) - (e.$id || 0);
|
|
})(t, e);
|
|
};
|
|
var sr = (function() {
|
|
function t(e) {
|
|
(this._sortFn = ur),
|
|
(this._rules = []),
|
|
(this.interceptDeferred = !1),
|
|
(this._id = 0),
|
|
(this._sorted = !1),
|
|
(this._router = e),
|
|
(this.urlRuleFactory = new or(e)),
|
|
Q(y(t.prototype), this, y(this));
|
|
}
|
|
return (
|
|
(t.prototype.dispose = function() {
|
|
this.listen(!1), (this._rules = []), delete this._otherwiseFn;
|
|
}),
|
|
(t.prototype.sort = function(t) {
|
|
(this._rules = this.stableSort(this._rules, (this._sortFn = t || this._sortFn))), (this._sorted = !0);
|
|
}),
|
|
(t.prototype.ensureSorted = function() {
|
|
this._sorted || this.sort();
|
|
}),
|
|
(t.prototype.stableSort = function(t, e) {
|
|
var r = t.map(function(t, e) {
|
|
return { elem: t, idx: e };
|
|
});
|
|
return (
|
|
r.sort(function(t, r) {
|
|
var n = e(t.elem, r.elem);
|
|
return 0 === n ? t.idx - r.idx : n;
|
|
}),
|
|
r.map(function(t) {
|
|
return t.elem;
|
|
})
|
|
);
|
|
}),
|
|
(t.prototype.match = function(t) {
|
|
var e = this;
|
|
this.ensureSorted(), (t = G({ path: '', search: {}, hash: '' }, t));
|
|
var r = this.rules();
|
|
this._otherwiseFn && r.push(this._otherwiseFn);
|
|
for (var n, i, o, a = 0; a < r.length && (!n || 0 === this._sortFn(r[a], n.rule)); a++) {
|
|
var u = ((i = r[a]),
|
|
void 0,
|
|
(o = i.match(t, e._router)) && { match: o, rule: i, weight: i.matchPriority(o) });
|
|
n = !n || (u && u.weight > n.weight) ? u : n;
|
|
}
|
|
return n;
|
|
}),
|
|
(t.prototype.sync = function(t) {
|
|
if (!t || !t.defaultPrevented) {
|
|
var e = this._router,
|
|
r = e.urlService,
|
|
n = e.stateService,
|
|
i = { path: r.path(), search: r.search(), hash: r.hash() },
|
|
o = this.match(i);
|
|
_([
|
|
[
|
|
O,
|
|
function(t) {
|
|
return r.url(t, !0);
|
|
},
|
|
],
|
|
[
|
|
Yt.isDef,
|
|
function(t) {
|
|
return n.go(t.state, t.params, t.options);
|
|
},
|
|
],
|
|
[
|
|
d(Yt),
|
|
function(t) {
|
|
return n.go(t.state(), t.params(), t.options());
|
|
},
|
|
],
|
|
])(o && o.rule.handler(o.match, i, e));
|
|
}
|
|
}),
|
|
(t.prototype.listen = function(t) {
|
|
var e = this;
|
|
if (!1 !== t)
|
|
return (this._stopFn =
|
|
this._stopFn ||
|
|
this._router.urlService.onChange(function(t) {
|
|
return e.sync(t);
|
|
}));
|
|
this._stopFn && this._stopFn(), delete this._stopFn;
|
|
}),
|
|
(t.prototype.update = function(t) {
|
|
var e = this._router.locationService;
|
|
t ? (this.location = e.url()) : e.url() !== this.location && e.url(this.location, !0);
|
|
}),
|
|
(t.prototype.push = function(t, e, r) {
|
|
var n = r && !!r.replace;
|
|
this._router.urlService.url(t.format(e || {}), n);
|
|
}),
|
|
(t.prototype.href = function(t, e, r) {
|
|
var n = t.format(e);
|
|
if (null == n) return null;
|
|
r = r || { absolute: !1 };
|
|
var i = this._router.urlService.config,
|
|
o = i.html5Mode();
|
|
if (
|
|
(o || null === n || (n = '#' + i.hashPrefix() + n),
|
|
(n = (function(t, e, r, n) {
|
|
return '/' === n ? t : e ? Ve(n) + t : r ? n.slice(1) + t : t;
|
|
})(n, o, r.absolute, i.baseHref())),
|
|
!r.absolute || !n)
|
|
)
|
|
return n;
|
|
var a = !o && n ? '/' : '',
|
|
u = i.port(),
|
|
s = 80 === u || 443 === u ? '' : ':' + u;
|
|
return [i.protocol(), '://', i.host(), s, a, n].join('');
|
|
}),
|
|
(t.prototype.rule = function(t) {
|
|
var e = this;
|
|
if (!or.isUrlRule(t)) throw new Error('invalid rule');
|
|
return (
|
|
(t.$id = this._id++),
|
|
(t.priority = t.priority || 0),
|
|
this._rules.push(t),
|
|
(this._sorted = !1),
|
|
function() {
|
|
return e.removeRule(t);
|
|
}
|
|
);
|
|
}),
|
|
(t.prototype.removeRule = function(t) {
|
|
X(this._rules, t);
|
|
}),
|
|
(t.prototype.rules = function() {
|
|
return this.ensureSorted(), this._rules.slice();
|
|
}),
|
|
(t.prototype.otherwise = function(t) {
|
|
var e = cr(t);
|
|
(this._otherwiseFn = this.urlRuleFactory.create(y(!0), e)), (this._sorted = !1);
|
|
}),
|
|
(t.prototype.initial = function(t) {
|
|
var e = cr(t);
|
|
this.rule(
|
|
this.urlRuleFactory.create(function(t, e) {
|
|
return 0 === e.globals.transitionHistory.size() && !!/^\/?$/.exec(t.path);
|
|
}, e),
|
|
);
|
|
}),
|
|
(t.prototype.when = function(t, e, r) {
|
|
var n = this.urlRuleFactory.create(t, e);
|
|
return E(r && r.priority) && (n.priority = r.priority), this.rule(n), n;
|
|
}),
|
|
(t.prototype.deferIntercept = function(t) {
|
|
void 0 === t && (t = !0), (this.interceptDeferred = t);
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
function cr(t) {
|
|
if (!(P(t) || O(t) || d(Yt)(t) || Yt.isDef(t)))
|
|
throw new Error("'handler' must be a string, function, TargetState, or have a state: 'newtarget' property");
|
|
return P(t) ? t : y(t);
|
|
}
|
|
var fr = (function() {
|
|
function t() {
|
|
var t = this;
|
|
(this._uiViews = []),
|
|
(this._viewConfigs = []),
|
|
(this._viewConfigFactories = {}),
|
|
(this._listeners = []),
|
|
(this._pluginapi = {
|
|
_rootViewContext: this._rootViewContext.bind(this),
|
|
_viewConfigFactory: this._viewConfigFactory.bind(this),
|
|
_registeredUIViews: function() {
|
|
return t._uiViews;
|
|
},
|
|
_activeViewConfigs: function() {
|
|
return t._viewConfigs;
|
|
},
|
|
_onSync: function(e) {
|
|
return (
|
|
t._listeners.push(e),
|
|
function() {
|
|
return X(t._listeners, e);
|
|
}
|
|
);
|
|
},
|
|
});
|
|
}
|
|
return (
|
|
(t.normalizeUIViewTarget = function(t, e) {
|
|
void 0 === e && (e = '');
|
|
var r = e.split('@'),
|
|
n = r[0] || '$default',
|
|
i = O(r[1]) ? r[1] : '^',
|
|
o = /^(\^(?:\.\^)*)\.(.*$)/.exec(n);
|
|
o && ((i = o[1]), (n = o[2])), '!' === n.charAt(0) && ((n = n.substr(1)), (i = ''));
|
|
/^(\^(?:\.\^)*)$/.exec(i)
|
|
? (i = i.split('.').reduce(function(t, e) {
|
|
return t.parent;
|
|
}, t).name)
|
|
: '.' === i && (i = t.name);
|
|
return { uiViewName: n, uiViewContextAnchor: i };
|
|
}),
|
|
(t.prototype._rootViewContext = function(t) {
|
|
return (this._rootContext = t || this._rootContext);
|
|
}),
|
|
(t.prototype._viewConfigFactory = function(t, e) {
|
|
this._viewConfigFactories[t] = e;
|
|
}),
|
|
(t.prototype.createViewConfig = function(t, e) {
|
|
var r = this._viewConfigFactories[e.$type];
|
|
if (!r) throw new Error('ViewService: No view config factory registered for type ' + e.$type);
|
|
var n = r(t, e);
|
|
return V(n) ? n : [n];
|
|
}),
|
|
(t.prototype.deactivateViewConfig = function(t) {
|
|
Kt.traceViewServiceEvent('<- Removing', t), X(this._viewConfigs, t);
|
|
}),
|
|
(t.prototype.activateViewConfig = function(t) {
|
|
Kt.traceViewServiceEvent('-> Registering', t), this._viewConfigs.push(t);
|
|
}),
|
|
(t.prototype.sync = function() {
|
|
var e = this,
|
|
r = this._uiViews
|
|
.map(function(t) {
|
|
return [t.fqn, t];
|
|
})
|
|
.reduce(Pt, {});
|
|
function n(t) {
|
|
for (var e = t.viewDecl.$context, r = 0; ++r && e.parent; ) e = e.parent;
|
|
return r;
|
|
}
|
|
var o = i(function(t, e, r, n) {
|
|
return e * (t(r) - t(n));
|
|
}),
|
|
a = this._uiViews
|
|
.sort(
|
|
o(function(t) {
|
|
var e = function(t) {
|
|
return t && t.parent ? e(t.parent) + 1 : 1;
|
|
};
|
|
return 1e4 * t.fqn.split('.').length + e(t.creationContext);
|
|
}, 1),
|
|
)
|
|
.map(function(i) {
|
|
var a = e._viewConfigs.filter(t.matches(r, i));
|
|
return a.length > 1 && a.sort(o(n, -1)), { uiView: i, viewConfig: a[0] };
|
|
}),
|
|
u = a.map(function(t) {
|
|
return t.viewConfig;
|
|
}),
|
|
s = this._viewConfigs
|
|
.filter(function(t) {
|
|
return !Y(u, t);
|
|
})
|
|
.map(function(t) {
|
|
return { uiView: void 0, viewConfig: t };
|
|
});
|
|
a.forEach(function(t) {
|
|
-1 !== e._uiViews.indexOf(t.uiView) && t.uiView.configUpdated(t.viewConfig);
|
|
});
|
|
var c = a.concat(s);
|
|
this._listeners.forEach(function(t) {
|
|
return t(c);
|
|
}),
|
|
Kt.traceViewSync(c);
|
|
}),
|
|
(t.prototype.registerUIView = function(t) {
|
|
Kt.traceViewServiceUIViewEvent('-> Registering', t);
|
|
var e = this._uiViews;
|
|
return (
|
|
e.filter(function(e) {
|
|
return e.fqn === t.fqn && e.$type === t.$type;
|
|
}).length && Kt.traceViewServiceUIViewEvent('!!!! duplicate uiView named:', t),
|
|
e.push(t),
|
|
this.sync(),
|
|
function() {
|
|
-1 !== e.indexOf(t)
|
|
? (Kt.traceViewServiceUIViewEvent('<- Deregistering', t), X(e)(t))
|
|
: Kt.traceViewServiceUIViewEvent('Tried removing non-registered uiView', t);
|
|
}
|
|
);
|
|
}),
|
|
(t.prototype.available = function() {
|
|
return this._uiViews.map(u('fqn'));
|
|
}),
|
|
(t.prototype.active = function() {
|
|
return this._uiViews.filter(u('$config')).map(u('name'));
|
|
}),
|
|
(t.matches = function(t, e) {
|
|
return function(r) {
|
|
if (e.$type !== r.viewDecl.$type) return !1;
|
|
var n = r.viewDecl,
|
|
i = n.$uiViewName.split('.'),
|
|
o = e.fqn.split('.');
|
|
if (!W(i, o.slice(0 - i.length))) return !1;
|
|
var a = 1 - i.length || void 0,
|
|
u = o.slice(0, a).join('.'),
|
|
s = t[u].creationContext;
|
|
return n.$uiViewContextAnchor === (s && s.name);
|
|
};
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
lr = (function() {
|
|
function t() {
|
|
(this.params = new Ue()),
|
|
(this.lastStartedTransitionId = -1),
|
|
(this.transitionHistory = new Ht([], 1)),
|
|
(this.successfulTransitions = new Ht([], 1));
|
|
}
|
|
return (
|
|
(t.prototype.dispose = function() {
|
|
this.transitionHistory.clear(), this.successfulTransitions.clear(), (this.transition = null);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
hr = function(t) {
|
|
return t.reduce(
|
|
function(t, e) {
|
|
return (t[e] = q(e)), t;
|
|
},
|
|
{ dispose: J },
|
|
);
|
|
},
|
|
pr = ['url', 'path', 'search', 'hash', 'onChange'],
|
|
vr = ['port', 'protocol', 'host', 'baseHref', 'html5Mode', 'hashPrefix'],
|
|
dr = ['type', 'caseInsensitive', 'strictMode', 'defaultSquashPolicy'],
|
|
mr = ['sort', 'when', 'initial', 'otherwise', 'rules', 'rule', 'removeRule'],
|
|
yr = ['deferIntercept', 'listen', 'sync', 'match'],
|
|
gr = (function() {
|
|
function t(t, e) {
|
|
void 0 === e && (e = !0), (this.router = t), (this.rules = {}), (this.config = {});
|
|
var r = function() {
|
|
return t.locationService;
|
|
};
|
|
Q(r, this, r, pr, e);
|
|
var n = function() {
|
|
return t.locationConfig;
|
|
};
|
|
Q(n, this.config, n, vr, e);
|
|
var i = function() {
|
|
return t.urlMatcherFactory;
|
|
};
|
|
Q(i, this.config, i, dr);
|
|
var o = function() {
|
|
return t.urlRouter;
|
|
};
|
|
Q(o, this.rules, o, mr), Q(o, this, o, yr);
|
|
}
|
|
return (
|
|
(t.prototype.url = function(t, e, r) {}),
|
|
(t.prototype.path = function() {}),
|
|
(t.prototype.search = function() {}),
|
|
(t.prototype.hash = function() {}),
|
|
(t.prototype.onChange = function(t) {}),
|
|
(t.prototype.parts = function() {
|
|
return { path: this.path(), search: this.search(), hash: this.hash() };
|
|
}),
|
|
(t.prototype.dispose = function() {}),
|
|
(t.prototype.sync = function(t) {}),
|
|
(t.prototype.listen = function(t) {}),
|
|
(t.prototype.deferIntercept = function(t) {}),
|
|
(t.prototype.match = function(t) {}),
|
|
(t.locationServiceStub = hr(pr)),
|
|
(t.locationConfigStub = hr(vr)),
|
|
t
|
|
);
|
|
})(),
|
|
_r = 0,
|
|
wr = (function() {
|
|
function t(t, e) {
|
|
void 0 === t && (t = gr.locationServiceStub),
|
|
void 0 === e && (e = gr.locationConfigStub),
|
|
(this.locationService = t),
|
|
(this.locationConfig = e),
|
|
(this.$id = _r++),
|
|
(this._disposed = !1),
|
|
(this._disposables = []),
|
|
(this.trace = Kt),
|
|
(this.viewService = new fr()),
|
|
(this.globals = new lr()),
|
|
(this.transitionService = new Lr(this)),
|
|
(this.urlMatcherFactory = new ir()),
|
|
(this.urlRouter = new sr(this)),
|
|
(this.stateRegistry = new tr(this)),
|
|
(this.stateService = new Mr(this)),
|
|
(this.urlService = new gr(this)),
|
|
(this._plugins = {}),
|
|
this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),
|
|
(this.globals.$current = this.stateRegistry.root()),
|
|
(this.globals.current = this.globals.$current.self),
|
|
this.disposable(this.globals),
|
|
this.disposable(this.stateService),
|
|
this.disposable(this.stateRegistry),
|
|
this.disposable(this.transitionService),
|
|
this.disposable(this.urlRouter),
|
|
this.disposable(t),
|
|
this.disposable(e);
|
|
}
|
|
return (
|
|
(t.prototype.disposable = function(t) {
|
|
this._disposables.push(t);
|
|
}),
|
|
(t.prototype.dispose = function(t) {
|
|
var e = this;
|
|
t && P(t.dispose)
|
|
? t.dispose(this)
|
|
: ((this._disposed = !0),
|
|
this._disposables.slice().forEach(function(t) {
|
|
try {
|
|
'function' == typeof t.dispose && t.dispose(e), X(e._disposables, t);
|
|
} catch (t) {}
|
|
}));
|
|
}),
|
|
(t.prototype.plugin = function(t, e) {
|
|
void 0 === e && (e = {});
|
|
var r = new t(this, e);
|
|
if (!r.name) throw new Error('Required property `name` missing on plugin: ' + r);
|
|
return this._disposables.push(r), (this._plugins[r.name] = r);
|
|
}),
|
|
(t.prototype.getPlugin = function(t) {
|
|
return t ? this._plugins[t] : vt(this._plugins);
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
function $r(t) {
|
|
t.addResolvable(he.fromData(wr, t.router), ''),
|
|
t.addResolvable(he.fromData($e, t), ''),
|
|
t.addResolvable(he.fromData('$transition$', t), ''),
|
|
t.addResolvable(he.fromData('$stateParams', t.params()), ''),
|
|
t.entering().forEach(function(e) {
|
|
t.addResolvable(he.fromData('$state$', e), e);
|
|
});
|
|
}
|
|
var Sr = Y(['$transition$', $e]),
|
|
br = function(t) {
|
|
var e = function(t) {
|
|
return Sr(t.token) ? he.fromData(t.token, null) : t;
|
|
};
|
|
vt(t.treeChanges())
|
|
.reduce(yt, [])
|
|
.reduce(wt, [])
|
|
.forEach(function(t) {
|
|
t.resolvables = t.resolvables.map(e);
|
|
});
|
|
},
|
|
Rr = function(t) {
|
|
var e = t.to().redirectTo;
|
|
if (e) {
|
|
var r = t.router.stateService;
|
|
return P(e) ? N.$q.when(e(t)).then(n) : n(e);
|
|
}
|
|
function n(e) {
|
|
if (e)
|
|
return e instanceof Yt
|
|
? e
|
|
: O(e)
|
|
? r.target(e, t.params(), t.options())
|
|
: e.state || e.params
|
|
? r.target(e.state || t.to(), e.params || t.params(), t.options())
|
|
: void 0;
|
|
}
|
|
};
|
|
function Er(t) {
|
|
return function(e, r) {
|
|
return (0, r.$$state()[t])(e, r);
|
|
};
|
|
}
|
|
var Cr = Er('onExit'),
|
|
Tr = Er('onRetain'),
|
|
Pr = Er('onEnter'),
|
|
kr = function(t) {
|
|
return new ge(t.treeChanges().to).resolvePath('EAGER', t).then(J);
|
|
},
|
|
Or = function(t, e) {
|
|
return new ge(t.treeChanges().to)
|
|
.subContext(e.$$state())
|
|
.resolvePath('LAZY', t)
|
|
.then(J);
|
|
},
|
|
xr = function(t) {
|
|
return new ge(t.treeChanges().to).resolvePath('LAZY', t).then(J);
|
|
},
|
|
Vr = function(t) {
|
|
var e = N.$q,
|
|
r = t.views('entering');
|
|
if (r.length)
|
|
return e
|
|
.all(
|
|
r.map(function(t) {
|
|
return e.when(t.load());
|
|
}),
|
|
)
|
|
.then(J);
|
|
},
|
|
Ir = function(t) {
|
|
var e = t.views('entering'),
|
|
r = t.views('exiting');
|
|
if (e.length || r.length) {
|
|
var n = t.router.viewService;
|
|
r.forEach(function(t) {
|
|
return n.deactivateViewConfig(t);
|
|
}),
|
|
e.forEach(function(t) {
|
|
return n.activateViewConfig(t);
|
|
}),
|
|
n.sync();
|
|
}
|
|
},
|
|
jr = function(t) {
|
|
var e = t.router.globals,
|
|
r = function() {
|
|
e.transition === t && (e.transition = null);
|
|
};
|
|
t.onSuccess(
|
|
{},
|
|
function() {
|
|
e.successfulTransitions.enqueue(t),
|
|
(e.$current = t.$to()),
|
|
(e.current = e.$current.self),
|
|
Ot(t.params(), e.params);
|
|
},
|
|
{ priority: 1e4 },
|
|
),
|
|
t.promise.then(r, r);
|
|
},
|
|
Ar = function(t) {
|
|
var e = t.options(),
|
|
r = t.router.stateService,
|
|
n = t.router.urlRouter;
|
|
if ('url' !== e.source && e.location && r.$current.navigable) {
|
|
var i = { replace: 'replace' === e.location };
|
|
n.push(r.$current.navigable.url, r.params, i);
|
|
}
|
|
n.update(!0);
|
|
},
|
|
Hr = function(t) {
|
|
var e = t.router;
|
|
var r = t
|
|
.entering()
|
|
.filter(function(t) {
|
|
return !!t.$$state().lazyLoad;
|
|
})
|
|
.map(function(e) {
|
|
return Dr(t, e);
|
|
});
|
|
return N.$q.all(r).then(function() {
|
|
if ('url' !== t.originalTransition().options().source) {
|
|
var r = t.targetState();
|
|
return e.stateService.target(r.identifier(), r.params(), r.options());
|
|
}
|
|
var n = e.urlService,
|
|
i = n.match(n.parts()),
|
|
o = i && i.rule;
|
|
if (o && 'STATE' === o.type) {
|
|
var a = o.state,
|
|
u = i.match;
|
|
return e.stateService.target(a, u, t.options());
|
|
}
|
|
e.urlService.sync();
|
|
});
|
|
};
|
|
function Dr(t, e) {
|
|
var r = e.$$state().lazyLoad,
|
|
n = r._promise;
|
|
if (!n) {
|
|
n = r._promise = N.$q
|
|
.when(r(t, e))
|
|
.then(function(e) {
|
|
e &&
|
|
Array.isArray(e.states) &&
|
|
e.states.forEach(function(e) {
|
|
return t.router.stateRegistry.register(e);
|
|
});
|
|
return e;
|
|
})
|
|
.then(
|
|
function(t) {
|
|
return delete e.lazyLoad, delete e.$$state().lazyLoad, delete r._promise, t;
|
|
},
|
|
function(t) {
|
|
return delete r._promise, N.$q.reject(t);
|
|
},
|
|
);
|
|
}
|
|
return n;
|
|
}
|
|
var qr = (function() {
|
|
return function(t, e, r, n, i, o, a, u) {
|
|
void 0 === i && (i = !1),
|
|
void 0 === o && (o = Xt.HANDLE_RESULT),
|
|
void 0 === a && (a = Xt.REJECT_ERROR),
|
|
void 0 === u && (u = !1),
|
|
(this.name = t),
|
|
(this.hookPhase = e),
|
|
(this.hookOrder = r),
|
|
(this.criteriaMatchPath = n),
|
|
(this.reverseSort = i),
|
|
(this.getResultHandler = o),
|
|
(this.getErrorHandler = a),
|
|
(this.synchronous = u);
|
|
};
|
|
})();
|
|
function Nr(t) {
|
|
var e = t._ignoredReason();
|
|
if (e) {
|
|
Kt.traceTransitionIgnored(t);
|
|
var r = t.router.globals.transition;
|
|
return 'SameAsCurrent' === e && r && r.abort(), qt.ignored().toPromise();
|
|
}
|
|
}
|
|
function Fr(t) {
|
|
if (!t.valid()) throw new Error(t.error().toString());
|
|
}
|
|
var Ur = {
|
|
location: !0,
|
|
relative: null,
|
|
inherit: !1,
|
|
notify: !0,
|
|
reload: !1,
|
|
custom: {},
|
|
current: function() {
|
|
return null;
|
|
},
|
|
source: 'unknown',
|
|
},
|
|
Lr = (function() {
|
|
function e(t) {
|
|
(this._transitionCount = 0),
|
|
(this._eventTypes = []),
|
|
(this._registeredHooks = {}),
|
|
(this._criteriaPaths = {}),
|
|
(this._router = t),
|
|
(this.$view = t.viewService),
|
|
(this._deregisterHookFns = {}),
|
|
(this._pluginapi = Q(y(this), {}, y(this), [
|
|
'_definePathType',
|
|
'_defineEvent',
|
|
'_getPathTypes',
|
|
'_getEvents',
|
|
'getHooks',
|
|
])),
|
|
this._defineCorePaths(),
|
|
this._defineCoreEvents(),
|
|
this._registerCoreTransitionHooks(),
|
|
t.globals.successfulTransitions.onEvict(br);
|
|
}
|
|
return (
|
|
(e.prototype.onCreate = function(t, e, r) {}),
|
|
(e.prototype.onBefore = function(t, e, r) {}),
|
|
(e.prototype.onStart = function(t, e, r) {}),
|
|
(e.prototype.onExit = function(t, e, r) {}),
|
|
(e.prototype.onRetain = function(t, e, r) {}),
|
|
(e.prototype.onEnter = function(t, e, r) {}),
|
|
(e.prototype.onFinish = function(t, e, r) {}),
|
|
(e.prototype.onSuccess = function(t, e, r) {}),
|
|
(e.prototype.onError = function(t, e, r) {}),
|
|
(e.prototype.dispose = function(t) {
|
|
vt(this._registeredHooks).forEach(function(t) {
|
|
return t.forEach(function(e) {
|
|
(e._deregistered = !0), X(t, e);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.create = function(t, e) {
|
|
return new $e(t, e, this._router);
|
|
}),
|
|
(e.prototype._defineCoreEvents = function() {
|
|
var e = t.TransitionHookPhase,
|
|
r = Xt,
|
|
n = this._criteriaPaths;
|
|
this._defineEvent('onCreate', e.CREATE, 0, n.to, !1, r.LOG_REJECTED_RESULT, r.THROW_ERROR, !0),
|
|
this._defineEvent('onBefore', e.BEFORE, 0, n.to),
|
|
this._defineEvent('onStart', e.RUN, 0, n.to),
|
|
this._defineEvent('onExit', e.RUN, 100, n.exiting, !0),
|
|
this._defineEvent('onRetain', e.RUN, 200, n.retained),
|
|
this._defineEvent('onEnter', e.RUN, 300, n.entering),
|
|
this._defineEvent('onFinish', e.RUN, 400, n.to),
|
|
this._defineEvent('onSuccess', e.SUCCESS, 0, n.to, !1, r.LOG_REJECTED_RESULT, r.LOG_ERROR, !0),
|
|
this._defineEvent('onError', e.ERROR, 0, n.to, !1, r.LOG_REJECTED_RESULT, r.LOG_ERROR, !0);
|
|
}),
|
|
(e.prototype._defineCorePaths = function() {
|
|
var e = t.TransitionHookScope.STATE,
|
|
r = t.TransitionHookScope.TRANSITION;
|
|
this._definePathType('to', r),
|
|
this._definePathType('from', r),
|
|
this._definePathType('exiting', e),
|
|
this._definePathType('retained', e),
|
|
this._definePathType('entering', e);
|
|
}),
|
|
(e.prototype._defineEvent = function(t, e, r, n, i, o, a, u) {
|
|
void 0 === i && (i = !1),
|
|
void 0 === o && (o = Xt.HANDLE_RESULT),
|
|
void 0 === a && (a = Xt.REJECT_ERROR),
|
|
void 0 === u && (u = !1);
|
|
var s = new qr(t, e, r, n, i, o, a, u);
|
|
this._eventTypes.push(s), re(this, this, s);
|
|
}),
|
|
(e.prototype._getEvents = function(t) {
|
|
return (E(t)
|
|
? this._eventTypes.filter(function(e) {
|
|
return e.hookPhase === t;
|
|
})
|
|
: this._eventTypes.slice()
|
|
).sort(function(t, e) {
|
|
var r = t.hookPhase - e.hookPhase;
|
|
return 0 === r ? t.hookOrder - e.hookOrder : r;
|
|
});
|
|
}),
|
|
(e.prototype._definePathType = function(t, e) {
|
|
this._criteriaPaths[t] = { name: t, scope: e };
|
|
}),
|
|
(e.prototype._getPathTypes = function() {
|
|
return this._criteriaPaths;
|
|
}),
|
|
(e.prototype.getHooks = function(t) {
|
|
return this._registeredHooks[t];
|
|
}),
|
|
(e.prototype._registerCoreTransitionHooks = function() {
|
|
var t = this._deregisterHookFns;
|
|
(t.addCoreResolves = this.onCreate({}, $r)),
|
|
(t.ignored = (function(t) {
|
|
return t.onBefore({}, Nr, { priority: -9999 });
|
|
})(this)),
|
|
(t.invalid = (function(t) {
|
|
return t.onBefore({}, Fr, { priority: -1e4 });
|
|
})(this)),
|
|
(t.redirectTo = (function(t) {
|
|
return t.onStart(
|
|
{
|
|
to: function(t) {
|
|
return !!t.redirectTo;
|
|
},
|
|
},
|
|
Rr,
|
|
);
|
|
})(this)),
|
|
(t.onExit = (function(t) {
|
|
return t.onExit(
|
|
{
|
|
exiting: function(t) {
|
|
return !!t.onExit;
|
|
},
|
|
},
|
|
Cr,
|
|
);
|
|
})(this)),
|
|
(t.onRetain = (function(t) {
|
|
return t.onRetain(
|
|
{
|
|
retained: function(t) {
|
|
return !!t.onRetain;
|
|
},
|
|
},
|
|
Tr,
|
|
);
|
|
})(this)),
|
|
(t.onEnter = (function(t) {
|
|
return t.onEnter(
|
|
{
|
|
entering: function(t) {
|
|
return !!t.onEnter;
|
|
},
|
|
},
|
|
Pr,
|
|
);
|
|
})(this)),
|
|
(t.eagerResolve = (function(t) {
|
|
return t.onStart({}, kr, { priority: 1e3 });
|
|
})(this)),
|
|
(t.lazyResolve = (function(t) {
|
|
return t.onEnter({ entering: y(!0) }, Or, { priority: 1e3 });
|
|
})(this)),
|
|
(t.resolveAll = (function(t) {
|
|
return t.onFinish({}, xr, { priority: 1e3 });
|
|
})(this)),
|
|
(t.loadViews = (function(t) {
|
|
return t.onFinish({}, Vr);
|
|
})(this)),
|
|
(t.activateViews = (function(t) {
|
|
return t.onSuccess({}, Ir);
|
|
})(this)),
|
|
(t.updateGlobals = (function(t) {
|
|
return t.onCreate({}, jr);
|
|
})(this)),
|
|
(t.updateUrl = (function(t) {
|
|
return t.onSuccess({}, Ar, { priority: 9999 });
|
|
})(this)),
|
|
(t.lazyLoad = (function(t) {
|
|
return t.onBefore(
|
|
{
|
|
entering: function(t) {
|
|
return !!t.lazyLoad;
|
|
},
|
|
},
|
|
Hr,
|
|
);
|
|
})(this));
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Mr = (function() {
|
|
function e(t) {
|
|
(this.router = t),
|
|
(this.invalidCallbacks = []),
|
|
(this._defaultErrorHandler = function(t) {
|
|
t instanceof Error && t.stack
|
|
? (console.error(t), console.error(t.stack))
|
|
: t instanceof qt
|
|
? (console.error(t.toString()), t.detail && t.detail.stack && console.error(t.detail.stack))
|
|
: console.error(t);
|
|
});
|
|
var r = Object.keys(e.prototype).filter(f(Y(['current', '$current', 'params', 'transition'])));
|
|
Q(y(e.prototype), this, y(this), r);
|
|
}
|
|
return (
|
|
Object.defineProperty(e.prototype, 'transition', {
|
|
get: function() {
|
|
return this.router.globals.transition;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
Object.defineProperty(e.prototype, 'params', {
|
|
get: function() {
|
|
return this.router.globals.params;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
Object.defineProperty(e.prototype, 'current', {
|
|
get: function() {
|
|
return this.router.globals.current;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
Object.defineProperty(e.prototype, '$current', {
|
|
get: function() {
|
|
return this.router.globals.$current;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.dispose = function() {
|
|
this.defaultErrorHandler(J), (this.invalidCallbacks = []);
|
|
}),
|
|
(e.prototype._handleInvalidTargetState = function(t, e) {
|
|
var r = this,
|
|
n = fe.makeTargetState(this.router.stateRegistry, t),
|
|
i = this.router.globals,
|
|
o = function() {
|
|
return i.transitionHistory.peekTail();
|
|
},
|
|
a = o(),
|
|
u = new Ht(this.invalidCallbacks.slice()),
|
|
s = new ge(t).injector(),
|
|
c = function(t) {
|
|
if (t instanceof Yt) {
|
|
var e = t;
|
|
return (e = r.target(e.identifier(), e.params(), e.options())).valid()
|
|
? o() !== a
|
|
? qt.superseded().toPromise()
|
|
: r.transitionTo(e.identifier(), e.params(), e.options())
|
|
: qt.invalid(e.error()).toPromise();
|
|
}
|
|
};
|
|
return (function t() {
|
|
var r = u.dequeue();
|
|
return void 0 === r
|
|
? qt.invalid(e.error()).toPromise()
|
|
: N.$q
|
|
.when(r(e, n, s))
|
|
.then(c)
|
|
.then(function(e) {
|
|
return e || t();
|
|
});
|
|
})();
|
|
}),
|
|
(e.prototype.onInvalid = function(t) {
|
|
return (
|
|
this.invalidCallbacks.push(t),
|
|
function() {
|
|
X(this.invalidCallbacks)(t);
|
|
}.bind(this)
|
|
);
|
|
}),
|
|
(e.prototype.reload = function(t) {
|
|
return this.transitionTo(this.current, this.params, { reload: !E(t) || t, inherit: !1, notify: !1 });
|
|
}),
|
|
(e.prototype.go = function(t, e, r) {
|
|
var n = it(r, { relative: this.$current, inherit: !0 }, Ur);
|
|
return this.transitionTo(t, e, n);
|
|
}),
|
|
(e.prototype.target = function(t, e, r) {
|
|
if ((void 0 === r && (r = {}), x(r.reload) && !r.reload.name)) throw new Error('Invalid reload state object');
|
|
var n = this.router.stateRegistry;
|
|
if (
|
|
((r.reloadState = !0 === r.reload ? n.root() : n.matcher.find(r.reload, r.relative)),
|
|
r.reload && !r.reloadState)
|
|
)
|
|
throw new Error("No such reload state '" + (O(r.reload) ? r.reload : r.reload.name) + "'");
|
|
return new Yt(this.router.stateRegistry, t, e, r);
|
|
}),
|
|
(e.prototype.getCurrentPath = function() {
|
|
var t = this,
|
|
e = this.router.globals.successfulTransitions.peekTail();
|
|
return e ? e.treeChanges().to : [new ce(t.router.stateRegistry.root())];
|
|
}),
|
|
(e.prototype.transitionTo = function(e, r, n) {
|
|
var i = this;
|
|
void 0 === r && (r = {}), void 0 === n && (n = {});
|
|
var o = this.router,
|
|
a = o.globals;
|
|
n = it(n, Ur);
|
|
n = G(n, {
|
|
current: function() {
|
|
return a.transition;
|
|
},
|
|
});
|
|
var u = this.target(e, r, n),
|
|
s = this.getCurrentPath();
|
|
if (!u.exists()) return this._handleInvalidTargetState(s, u);
|
|
if (!u.valid()) return At(u.error());
|
|
var c = function(e) {
|
|
return function(r) {
|
|
if (r instanceof qt) {
|
|
var n = o.globals.lastStartedTransitionId === e.$id;
|
|
if (r.type === t.RejectType.IGNORED) return n && o.urlRouter.update(), N.$q.when(a.current);
|
|
var u = r.detail;
|
|
if (r.type === t.RejectType.SUPERSEDED && r.redirected && u instanceof Yt) {
|
|
var s = e.redirect(u);
|
|
return s.run().catch(c(s));
|
|
}
|
|
if (r.type === t.RejectType.ABORTED) return n && o.urlRouter.update(), N.$q.reject(r);
|
|
}
|
|
return i.defaultErrorHandler()(r), N.$q.reject(r);
|
|
};
|
|
},
|
|
f = this.router.transitionService.create(s, u),
|
|
l = f.run().catch(c(f));
|
|
return jt(l), G(l, { transition: f });
|
|
}),
|
|
(e.prototype.is = function(t, e, r) {
|
|
r = it(r, { relative: this.$current });
|
|
var n = this.router.stateRegistry.matcher.find(t, r.relative);
|
|
if (E(n)) {
|
|
if (this.$current !== n) return !1;
|
|
if (!e) return !0;
|
|
var i = n.parameters({ inherit: !0, matchingKeys: e });
|
|
return se.equals(i, se.values(i, e), this.params);
|
|
}
|
|
}),
|
|
(e.prototype.includes = function(t, e, r) {
|
|
r = it(r, { relative: this.$current });
|
|
var n = O(t) && w.fromString(t);
|
|
if (n) {
|
|
if (!n.matches(this.$current.name)) return !1;
|
|
t = this.$current.name;
|
|
}
|
|
var i = this.router.stateRegistry.matcher.find(t, r.relative),
|
|
o = this.$current.includes;
|
|
if (E(i)) {
|
|
if (!E(o[i.name])) return !1;
|
|
if (!e) return !0;
|
|
var a = i.parameters({ inherit: !0, matchingKeys: e });
|
|
return se.equals(a, se.values(a, e), this.params);
|
|
}
|
|
}),
|
|
(e.prototype.href = function(t, e, r) {
|
|
(r = it(r, { lossy: !0, inherit: !0, absolute: !1, relative: this.$current })), (e = e || {});
|
|
var n = this.router.stateRegistry.matcher.find(t, r.relative);
|
|
if (!E(n)) return null;
|
|
r.inherit && (e = this.params.$inherit(e, this.$current, n));
|
|
var i = n && r.lossy ? n.navigable : n;
|
|
return i && void 0 !== i.url && null !== i.url
|
|
? this.router.urlRouter.href(i.url, e, { absolute: r.absolute })
|
|
: null;
|
|
}),
|
|
(e.prototype.defaultErrorHandler = function(t) {
|
|
return (this._defaultErrorHandler = t || this._defaultErrorHandler);
|
|
}),
|
|
(e.prototype.get = function(t, e) {
|
|
var r = this.router.stateRegistry;
|
|
return 0 === arguments.length ? r.get() : r.get(t, e || this.$current);
|
|
}),
|
|
(e.prototype.lazyLoad = function(t, e) {
|
|
var r = this.get(t);
|
|
if (!r || !r.lazyLoad) throw new Error('Can not lazy load ' + t);
|
|
var n = this.getCurrentPath(),
|
|
i = fe.makeTargetState(this.router.stateRegistry, n);
|
|
return Dr((e = e || this.router.transitionService.create(n, i)), r);
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Br = {
|
|
when: function(t) {
|
|
return new Promise(function(e, r) {
|
|
return e(t);
|
|
});
|
|
},
|
|
reject: function(t) {
|
|
return new Promise(function(e, r) {
|
|
r(t);
|
|
});
|
|
},
|
|
defer: function() {
|
|
var t = {};
|
|
return (
|
|
(t.promise = new Promise(function(e, r) {
|
|
(t.resolve = e), (t.reject = r);
|
|
})),
|
|
t
|
|
);
|
|
},
|
|
all: function(t) {
|
|
if (V(t)) return Promise.all(t);
|
|
if (x(t)) {
|
|
var e = Object.keys(t).map(function(e) {
|
|
return t[e].then(function(t) {
|
|
return { key: e, val: t };
|
|
});
|
|
});
|
|
return Br.all(e).then(function(t) {
|
|
return t.reduce(function(t, e) {
|
|
return (t[e.key] = e.val), t;
|
|
}, {});
|
|
});
|
|
}
|
|
},
|
|
},
|
|
Gr = {},
|
|
Wr = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,
|
|
zr = /([^\s,]+)/g,
|
|
Jr = {
|
|
get: function(t) {
|
|
return Gr[t];
|
|
},
|
|
has: function(t) {
|
|
return null != Jr.get(t);
|
|
},
|
|
invoke: function(t, e, r) {
|
|
var n = G({}, Gr, r || {}),
|
|
i = Jr.annotate(t),
|
|
o = bt(
|
|
function(t) {
|
|
return n.hasOwnProperty(t);
|
|
},
|
|
function(t) {
|
|
return "DI can't find injectable: '" + t + "'";
|
|
},
|
|
),
|
|
a = i.filter(o).map(function(t) {
|
|
return n[t];
|
|
});
|
|
return P(t) ? t.apply(e, a) : t.slice(-1)[0].apply(e, a);
|
|
},
|
|
annotate: function(t) {
|
|
if (!H(t)) throw new Error('Not an injectable function: ' + t);
|
|
if (t && t.$inject) return t.$inject;
|
|
if (V(t)) return t.slice(0, -1);
|
|
var e = t.toString().replace(Wr, '');
|
|
return e.slice(e.indexOf('(') + 1, e.indexOf(')')).match(zr) || [];
|
|
},
|
|
},
|
|
Qr = function(t, e) {
|
|
var r = e[0],
|
|
n = e[1];
|
|
return t.hasOwnProperty(r) ? (V(t[r]) ? t[r].push(n) : (t[r] = [t[r], n])) : (t[r] = n), t;
|
|
},
|
|
Kr = function(t) {
|
|
return t
|
|
.split('&')
|
|
.filter(z)
|
|
.map(Ae)
|
|
.reduce(Qr, {});
|
|
};
|
|
function Yr(t) {
|
|
var e = function(t) {
|
|
return t || '';
|
|
},
|
|
r = Ie(t).map(e),
|
|
n = r[0],
|
|
i = r[1],
|
|
o = je(n).map(e);
|
|
return { path: o[0], search: o[1], hash: i, url: t };
|
|
}
|
|
var Zr = function(t) {
|
|
var e = t.path(),
|
|
r = t.search(),
|
|
n = t.hash(),
|
|
i = Object.keys(r)
|
|
.map(function(t) {
|
|
var e = r[t];
|
|
return (V(e) ? e : [e]).map(function(e) {
|
|
return t + '=' + e;
|
|
});
|
|
})
|
|
.reduce(yt, [])
|
|
.join('&');
|
|
return e + (i ? '?' + i : '') + (n ? '#' + n : '');
|
|
};
|
|
function Xr(t, e, r, n) {
|
|
return function(i) {
|
|
var o = (i.locationService = new r(i)),
|
|
a = (i.locationConfig = new n(i, e));
|
|
return {
|
|
name: t,
|
|
service: o,
|
|
configuration: a,
|
|
dispose: function(t) {
|
|
t.dispose(o), t.dispose(a);
|
|
},
|
|
};
|
|
};
|
|
}
|
|
var tn,
|
|
en = (function() {
|
|
function t(t, e) {
|
|
var r = this;
|
|
(this.fireAfterUpdate = e),
|
|
(this._listeners = []),
|
|
(this._listener = function(t) {
|
|
return r._listeners.forEach(function(e) {
|
|
return e(t);
|
|
});
|
|
}),
|
|
(this.hash = function() {
|
|
return Yr(r._get()).hash;
|
|
}),
|
|
(this.path = function() {
|
|
return Yr(r._get()).path;
|
|
}),
|
|
(this.search = function() {
|
|
return Kr(Yr(r._get()).search);
|
|
}),
|
|
(this._location = F.location),
|
|
(this._history = F.history);
|
|
}
|
|
return (
|
|
(t.prototype.url = function(t, e) {
|
|
return (
|
|
void 0 === e && (e = !0),
|
|
E(t) &&
|
|
t !== this._get() &&
|
|
(this._set(null, null, t, e),
|
|
this.fireAfterUpdate &&
|
|
this._listeners.forEach(function(e) {
|
|
return e({ url: t });
|
|
})),
|
|
Zr(this)
|
|
);
|
|
}),
|
|
(t.prototype.onChange = function(t) {
|
|
var e = this;
|
|
return (
|
|
this._listeners.push(t),
|
|
function() {
|
|
return X(e._listeners, t);
|
|
}
|
|
);
|
|
}),
|
|
(t.prototype.dispose = function(t) {
|
|
nt(this._listeners);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
rn = ((tn =
|
|
Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array &&
|
|
function(t, e) {
|
|
t.__proto__ = e;
|
|
}) ||
|
|
function(t, e) {
|
|
for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
|
|
}),
|
|
function(t, e) {
|
|
function r() {
|
|
this.constructor = t;
|
|
}
|
|
tn(t, e), (t.prototype = null === e ? Object.create(e) : ((r.prototype = e.prototype), new r()));
|
|
}),
|
|
nn = (function(t) {
|
|
function e(e) {
|
|
var r = t.call(this, e, !1) || this;
|
|
return F.addEventListener('hashchange', r._listener, !1), r;
|
|
}
|
|
return (
|
|
rn(e, t),
|
|
(e.prototype._get = function() {
|
|
return He(this._location.hash);
|
|
}),
|
|
(e.prototype._set = function(t, e, r, n) {
|
|
this._location.hash = r;
|
|
}),
|
|
(e.prototype.dispose = function(e) {
|
|
t.prototype.dispose.call(this, e), F.removeEventListener('hashchange', this._listener);
|
|
}),
|
|
e
|
|
);
|
|
})(en),
|
|
on = (function() {
|
|
var t =
|
|
Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array &&
|
|
function(t, e) {
|
|
t.__proto__ = e;
|
|
}) ||
|
|
function(t, e) {
|
|
for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
|
|
};
|
|
return function(e, r) {
|
|
function n() {
|
|
this.constructor = e;
|
|
}
|
|
t(e, r), (e.prototype = null === r ? Object.create(r) : ((n.prototype = r.prototype), new n()));
|
|
};
|
|
})(),
|
|
an = (function(t) {
|
|
function e(e) {
|
|
return t.call(this, e, !0) || this;
|
|
}
|
|
return (
|
|
on(e, t),
|
|
(e.prototype._get = function() {
|
|
return this._url;
|
|
}),
|
|
(e.prototype._set = function(t, e, r, n) {
|
|
this._url = r;
|
|
}),
|
|
e
|
|
);
|
|
})(en),
|
|
un = (function() {
|
|
var t =
|
|
Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array &&
|
|
function(t, e) {
|
|
t.__proto__ = e;
|
|
}) ||
|
|
function(t, e) {
|
|
for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
|
|
};
|
|
return function(e, r) {
|
|
function n() {
|
|
this.constructor = e;
|
|
}
|
|
t(e, r), (e.prototype = null === r ? Object.create(r) : ((n.prototype = r.prototype), new n()));
|
|
};
|
|
})(),
|
|
sn = (function(t) {
|
|
function e(e) {
|
|
var r = t.call(this, e, !0) || this;
|
|
return (r._config = e.urlService.config), F.addEventListener('popstate', r._listener, !1), r;
|
|
}
|
|
return (
|
|
un(e, t),
|
|
(e.prototype._getBasePrefix = function() {
|
|
return Ve(this._config.baseHref());
|
|
}),
|
|
(e.prototype._get = function() {
|
|
var t = this._location,
|
|
e = t.pathname,
|
|
r = t.hash,
|
|
n = t.search;
|
|
(n = je(n)[1]), (r = Ie(r)[1]);
|
|
var i = this._getBasePrefix(),
|
|
o = e === this._config.baseHref(),
|
|
a = e.substr(0, i.length) === i;
|
|
return (e = o ? '/' : a ? e.substring(i.length) : e) + (n ? '?' + n : '') + (r ? '#' + r : '');
|
|
}),
|
|
(e.prototype._set = function(t, e, r, n) {
|
|
var i = this._getBasePrefix(),
|
|
o = r && '/' !== r[0] ? '/' : '',
|
|
a = '' === r || '/' === r ? this._config.baseHref() : i + o + r;
|
|
n ? this._history.replaceState(t, e, a) : this._history.pushState(t, e, a);
|
|
}),
|
|
(e.prototype.dispose = function(e) {
|
|
t.prototype.dispose.call(this, e), F.removeEventListener('popstate', this._listener);
|
|
}),
|
|
e
|
|
);
|
|
})(en),
|
|
cn = (function() {
|
|
return function() {
|
|
var t = this;
|
|
(this.dispose = J),
|
|
(this._baseHref = ''),
|
|
(this._port = 80),
|
|
(this._protocol = 'http'),
|
|
(this._host = 'localhost'),
|
|
(this._hashPrefix = ''),
|
|
(this.port = function() {
|
|
return t._port;
|
|
}),
|
|
(this.protocol = function() {
|
|
return t._protocol;
|
|
}),
|
|
(this.host = function() {
|
|
return t._host;
|
|
}),
|
|
(this.baseHref = function() {
|
|
return t._baseHref;
|
|
}),
|
|
(this.html5Mode = function() {
|
|
return !1;
|
|
}),
|
|
(this.hashPrefix = function(e) {
|
|
return E(e) ? (t._hashPrefix = e) : t._hashPrefix;
|
|
});
|
|
};
|
|
})(),
|
|
fn = (function() {
|
|
function t(t, e) {
|
|
void 0 === e && (e = !1), (this._isHtml5 = e), (this._baseHref = void 0), (this._hashPrefix = '');
|
|
}
|
|
return (
|
|
(t.prototype.port = function() {
|
|
return location.port ? Number(location.port) : 'https' === this.protocol() ? 443 : 80;
|
|
}),
|
|
(t.prototype.protocol = function() {
|
|
return location.protocol.replace(/:/g, '');
|
|
}),
|
|
(t.prototype.host = function() {
|
|
return location.hostname;
|
|
}),
|
|
(t.prototype.html5Mode = function() {
|
|
return this._isHtml5;
|
|
}),
|
|
(t.prototype.hashPrefix = function(t) {
|
|
return E(t) ? (this._hashPrefix = t) : this._hashPrefix;
|
|
}),
|
|
(t.prototype.baseHref = function(t) {
|
|
return E(t) ? (this._baseHref = t) : E(this._baseHref) ? this._baseHref : this.applyDocumentBaseHref();
|
|
}),
|
|
(t.prototype.applyDocumentBaseHref = function() {
|
|
var t = document.getElementsByTagName('base')[0];
|
|
return (this._baseHref = t ? t.href.substr(location.origin.length) : location.pathname || '/');
|
|
}),
|
|
(t.prototype.dispose = function() {}),
|
|
t
|
|
);
|
|
})();
|
|
function ln(t) {
|
|
return (
|
|
(N.$injector = Jr),
|
|
(N.$q = Br),
|
|
{
|
|
name: 'vanilla.services',
|
|
$q: Br,
|
|
$injector: Jr,
|
|
dispose: function() {
|
|
return null;
|
|
},
|
|
}
|
|
);
|
|
}
|
|
var hn = Xr('vanilla.hashBangLocation', !1, nn, fn),
|
|
pn = Xr('vanilla.pushStateLocation', !0, sn, fn),
|
|
vn = Xr('vanilla.memoryLocation', !1, an, cn),
|
|
dn = (function() {
|
|
function t() {}
|
|
return (t.prototype.dispose = function(t) {}), t;
|
|
})(),
|
|
mn = Object.freeze({
|
|
root: F,
|
|
fromJson: L,
|
|
toJson: M,
|
|
forEach: B,
|
|
extend: G,
|
|
equals: W,
|
|
identity: z,
|
|
noop: J,
|
|
createProxyFunctions: Q,
|
|
inherit: K,
|
|
inArray: Y,
|
|
_inArray: Z,
|
|
removeFrom: X,
|
|
_removeFrom: tt,
|
|
pushTo: et,
|
|
_pushTo: rt,
|
|
deregAll: nt,
|
|
defaults: it,
|
|
mergeR: ot,
|
|
ancestors: at,
|
|
pick: ut,
|
|
omit: st,
|
|
pluck: ct,
|
|
filter: ft,
|
|
find: lt,
|
|
mapObj: ht,
|
|
map: pt,
|
|
values: vt,
|
|
allTrueR: dt,
|
|
anyTrueR: mt,
|
|
unnestR: yt,
|
|
flattenR: gt,
|
|
pushR: _t,
|
|
uniqR: wt,
|
|
unnest: $t,
|
|
flatten: St,
|
|
assertPredicate: bt,
|
|
assertMap: Rt,
|
|
assertFn: Et,
|
|
pairs: Ct,
|
|
arrayTuples: Tt,
|
|
applyPairs: Pt,
|
|
tail: kt,
|
|
copy: Ot,
|
|
_extend: xt,
|
|
silenceUncaughtInPromise: jt,
|
|
silentRejection: At,
|
|
notImplemented: q,
|
|
services: N,
|
|
Glob: w,
|
|
curry: i,
|
|
compose: o,
|
|
pipe: a,
|
|
prop: u,
|
|
propEq: s,
|
|
parse: c,
|
|
not: f,
|
|
and: l,
|
|
or: h,
|
|
all: p,
|
|
any: v,
|
|
is: d,
|
|
eq: m,
|
|
val: y,
|
|
invoke: g,
|
|
pattern: _,
|
|
isUndefined: R,
|
|
isDefined: E,
|
|
isNull: C,
|
|
isNullOrUndefined: T,
|
|
isFunction: P,
|
|
isNumber: k,
|
|
isString: O,
|
|
isObject: x,
|
|
isArray: V,
|
|
isDate: I,
|
|
isRegExp: j,
|
|
isState: A,
|
|
isInjectable: H,
|
|
isPromise: D,
|
|
Queue: Ht,
|
|
maxLength: Se,
|
|
padString: be,
|
|
kebobString: Re,
|
|
functionToString: Ee,
|
|
fnToString: Ce,
|
|
stringify: ke,
|
|
beforeAfterSubstr: Oe,
|
|
hostRegex: xe,
|
|
stripLastPathElement: Ve,
|
|
splitHash: Ie,
|
|
splitQuery: je,
|
|
splitEqual: Ae,
|
|
trimHashVal: He,
|
|
splitOnDelim: De,
|
|
joinNeighborsR: qe,
|
|
get Category() {
|
|
return t.Category;
|
|
},
|
|
Trace: Qt,
|
|
trace: Kt,
|
|
get DefType() {
|
|
return t.DefType;
|
|
},
|
|
Param: se,
|
|
ParamTypes: Fe,
|
|
StateParams: Ue,
|
|
ParamType: ie,
|
|
PathNode: ce,
|
|
PathUtils: fe,
|
|
resolvePolicies: pe,
|
|
defaultResolvePolicy: le,
|
|
Resolvable: he,
|
|
NATIVE_INJECTOR_TOKEN: ye,
|
|
ResolveContext: ge,
|
|
resolvablesBuilder: Ke,
|
|
StateBuilder: Ye,
|
|
StateObject: $,
|
|
StateMatcher: Ze,
|
|
StateQueueManager: Xe,
|
|
StateRegistry: tr,
|
|
StateService: Mr,
|
|
TargetState: Yt,
|
|
get TransitionHookPhase() {
|
|
return t.TransitionHookPhase;
|
|
},
|
|
get TransitionHookScope() {
|
|
return t.TransitionHookScope;
|
|
},
|
|
HookBuilder: ne,
|
|
matchState: te,
|
|
RegisteredHook: ee,
|
|
makeEvent: re,
|
|
get RejectType() {
|
|
return t.RejectType;
|
|
},
|
|
Rejection: qt,
|
|
Transition: $e,
|
|
TransitionHook: Xt,
|
|
TransitionEventType: qr,
|
|
defaultTransOpts: Ur,
|
|
TransitionService: Lr,
|
|
UrlMatcher: nr,
|
|
UrlMatcherFactory: ir,
|
|
UrlRouter: sr,
|
|
UrlRuleFactory: or,
|
|
BaseUrlRule: ar,
|
|
UrlService: gr,
|
|
ViewService: fr,
|
|
UIRouterGlobals: lr,
|
|
UIRouter: wr,
|
|
$q: Br,
|
|
$injector: Jr,
|
|
BaseLocationServices: en,
|
|
HashLocationService: nn,
|
|
MemoryLocationService: an,
|
|
PushStateLocationService: sn,
|
|
MemoryLocationConfig: cn,
|
|
BrowserLocationConfig: fn,
|
|
keyValsToObjectR: Qr,
|
|
getParams: Kr,
|
|
parseUrl: Yr,
|
|
buildUrl: Zr,
|
|
locationPluginFactory: Xr,
|
|
servicesPlugin: ln,
|
|
hashLocationPlugin: hn,
|
|
pushStateLocationPlugin: pn,
|
|
memoryLocationPlugin: vn,
|
|
UIRouterPluginBase: dn,
|
|
});
|
|
function yn() {
|
|
var t = null;
|
|
return function(e, r) {
|
|
return (t = t || N.$injector.get('$templateFactory')), [new $n(e, r, t)];
|
|
};
|
|
}
|
|
var gn = function(t, e) {
|
|
return t.reduce(function(t, r) {
|
|
return t || E(e[r]);
|
|
}, !1);
|
|
};
|
|
function _n(t) {
|
|
if (!t.parent) return {};
|
|
var e = ['component', 'bindings', 'componentProvider'],
|
|
r = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'].concat([
|
|
'controller',
|
|
'controllerProvider',
|
|
'controllerAs',
|
|
'resolveAs',
|
|
]),
|
|
n = e.concat(r);
|
|
if (E(t.views) && gn(n, t))
|
|
throw new Error(
|
|
"State '" +
|
|
t.name +
|
|
"' has a 'views' object. It cannot also have \"view properties\" at the state level. Move the following properties into a view (in the 'views' object): " +
|
|
n
|
|
.filter(function(e) {
|
|
return E(t[e]);
|
|
})
|
|
.join(', '),
|
|
);
|
|
var i = {},
|
|
o = t.views || { $default: ut(t, n) };
|
|
return (
|
|
B(o, function(n, o) {
|
|
if (((o = o || '$default'), O(n) && (n = { component: n }), (n = G({}, n)), gn(e, n) && gn(r, n)))
|
|
throw new Error(
|
|
'Cannot combine: ' + e.join('|') + ' with: ' + r.join('|') + " in stateview: '" + o + '@' + t.name + "'",
|
|
);
|
|
(n.resolveAs = n.resolveAs || '$resolve'), (n.$type = 'ng1'), (n.$context = t), (n.$name = o);
|
|
var a = fr.normalizeUIViewTarget(n.$context, n.$name);
|
|
(n.$uiViewName = a.uiViewName), (n.$uiViewContextAnchor = a.uiViewContextAnchor), (i[o] = n);
|
|
}),
|
|
i
|
|
);
|
|
}
|
|
var wn = 0,
|
|
$n = (function() {
|
|
function t(t, e, r) {
|
|
var n = this;
|
|
(this.path = t),
|
|
(this.viewDecl = e),
|
|
(this.factory = r),
|
|
(this.$id = wn++),
|
|
(this.loaded = !1),
|
|
(this.getTemplate = function(t, e) {
|
|
return n.component ? n.factory.makeComponentTemplate(t, e, n.component, n.viewDecl.bindings) : n.template;
|
|
});
|
|
}
|
|
return (
|
|
(t.prototype.load = function() {
|
|
var t = this,
|
|
e = N.$q,
|
|
r = new ge(this.path),
|
|
n = this.path.reduce(function(t, e) {
|
|
return G(t, e.paramValues);
|
|
}, {}),
|
|
i = {
|
|
template: e.when(this.factory.fromConfig(this.viewDecl, n, r)),
|
|
controller: e.when(this.getController(r)),
|
|
};
|
|
return e.all(i).then(function(e) {
|
|
return Kt.traceViewServiceEvent('Loaded', t), (t.controller = e.controller), G(t, e.template), t;
|
|
});
|
|
}),
|
|
(t.prototype.getController = function(t) {
|
|
var e = this.viewDecl.controllerProvider;
|
|
if (!H(e)) return this.viewDecl.controller;
|
|
var r = N.$injector.annotate(e),
|
|
n = V(e) ? kt(e) : e;
|
|
return new he('', n, r).get(t);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
Sn = (function() {
|
|
function t() {
|
|
var t = this;
|
|
(this._useHttp = n.version.minor < 3),
|
|
(this.$get = [
|
|
'$http',
|
|
'$templateCache',
|
|
'$injector',
|
|
function(e, r, n) {
|
|
return (
|
|
(t.$templateRequest = n.has && n.has('$templateRequest') && n.get('$templateRequest')),
|
|
(t.$http = e),
|
|
(t.$templateCache = r),
|
|
t
|
|
);
|
|
},
|
|
]);
|
|
}
|
|
return (
|
|
(t.prototype.useHttpService = function(t) {
|
|
this._useHttp = t;
|
|
}),
|
|
(t.prototype.fromConfig = function(t, e, r) {
|
|
var n = function(t) {
|
|
return N.$q.when(t).then(function(t) {
|
|
return { template: t };
|
|
});
|
|
},
|
|
i = function(t) {
|
|
return N.$q.when(t).then(function(t) {
|
|
return { component: t };
|
|
});
|
|
};
|
|
return E(t.template)
|
|
? n(this.fromString(t.template, e))
|
|
: E(t.templateUrl)
|
|
? n(this.fromUrl(t.templateUrl, e))
|
|
: E(t.templateProvider)
|
|
? n(this.fromProvider(t.templateProvider, e, r))
|
|
: E(t.component)
|
|
? i(t.component)
|
|
: E(t.componentProvider)
|
|
? i(this.fromComponentProvider(t.componentProvider, e, r))
|
|
: n('<ui-view></ui-view>');
|
|
}),
|
|
(t.prototype.fromString = function(t, e) {
|
|
return P(t) ? t(e) : t;
|
|
}),
|
|
(t.prototype.fromUrl = function(t, e) {
|
|
return (
|
|
P(t) && (t = t(e)),
|
|
null == t
|
|
? null
|
|
: this._useHttp
|
|
? this.$http.get(t, { cache: this.$templateCache, headers: { Accept: 'text/html' } }).then(function(t) {
|
|
return t.data;
|
|
})
|
|
: this.$templateRequest(t)
|
|
);
|
|
}),
|
|
(t.prototype.fromProvider = function(t, e, r) {
|
|
var n = N.$injector.annotate(t),
|
|
i = V(t) ? kt(t) : t;
|
|
return new he('', i, n).get(r);
|
|
}),
|
|
(t.prototype.fromComponentProvider = function(t, e, r) {
|
|
var n = N.$injector.annotate(t),
|
|
i = V(t) ? kt(t) : t;
|
|
return new he('', i, n).get(r);
|
|
}),
|
|
(t.prototype.makeComponentTemplate = function(t, e, r, i) {
|
|
i = i || {};
|
|
var o = n.version.minor >= 3 ? '::' : '',
|
|
a = function(t) {
|
|
var e = Re(t);
|
|
return /^(x|data)-/.exec(e) ? 'x-' + e : e;
|
|
},
|
|
u = (function(t) {
|
|
var e = N.$injector.get(t + 'Directive');
|
|
if (!e || !e.length) throw new Error("Unable to find component named '" + t + "'");
|
|
return e.map(bn).reduce(yt, []);
|
|
})(r)
|
|
.map(function(r) {
|
|
var n = r.name,
|
|
u = r.type,
|
|
s = a(n);
|
|
if (t.attr(s) && !i[n]) return s + "='" + t.attr(s) + "'";
|
|
var c = i[n] || n;
|
|
if ('@' === u) return s + "='{{" + o + '$resolve.' + c + "}}'";
|
|
if ('&' === u) {
|
|
var f = e.getResolvable(c),
|
|
l = f && f.data,
|
|
h = (l && N.$injector.annotate(l)) || [];
|
|
return s + "='$resolve." + c + (V(l) ? '[' + (l.length - 1) + ']' : '') + '(' + h.join(',') + ")'";
|
|
}
|
|
return s + "='" + o + '$resolve.' + c + "'";
|
|
})
|
|
.join(' '),
|
|
s = a(r);
|
|
return '<' + s + ' ' + u + '></' + s + '>';
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
var bn = function(t) {
|
|
return x(t.bindToController) ? Rn(t.bindToController) : Rn(t.scope);
|
|
},
|
|
Rn = function(t) {
|
|
return Object.keys(t || {})
|
|
.map(function(e) {
|
|
return [e, /^([=<@&])[?]?(.*)/.exec(t[e])];
|
|
})
|
|
.filter(function(t) {
|
|
return E(t) && V(t[1]);
|
|
})
|
|
.map(function(t) {
|
|
return { name: t[1][2] || t[0], type: t[1][1] };
|
|
});
|
|
},
|
|
En = (function() {
|
|
function t(e, r) {
|
|
(this.stateRegistry = e), (this.stateService = r), Q(y(t.prototype), this, y(this));
|
|
}
|
|
return (
|
|
(t.prototype.decorator = function(t, e) {
|
|
return this.stateRegistry.decorator(t, e) || this;
|
|
}),
|
|
(t.prototype.state = function(t, e) {
|
|
return x(t) ? (e = t) : (e.name = t), this.stateRegistry.register(e), this;
|
|
}),
|
|
(t.prototype.onInvalid = function(t) {
|
|
return this.stateService.onInvalid(t);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
Cn = function(t) {
|
|
return function(e, r) {
|
|
var n = e[t],
|
|
i = 'onExit' === t ? 'from' : 'to';
|
|
return n
|
|
? function(t, e) {
|
|
var r = new ge(t.treeChanges(i)).subContext(e.$$state()),
|
|
o = G(Mn(r), { $state$: e, $transition$: t });
|
|
return N.$injector.invoke(n, this, o);
|
|
}
|
|
: void 0;
|
|
};
|
|
},
|
|
Tn = (function() {
|
|
function t(t) {
|
|
(this._urlListeners = []), (this.$locationProvider = t);
|
|
var e = y(t);
|
|
Q(e, this, e, ['hashPrefix']);
|
|
}
|
|
return (
|
|
(t.monkeyPatchPathParameterType = function(t) {
|
|
var e = t.urlMatcherFactory.type('path');
|
|
(e.encode = function(t) {
|
|
return null != t
|
|
? t.toString().replace(/(~|\/)/g, function(t) {
|
|
return { '~': '~~', '/': '~2F' }[t];
|
|
})
|
|
: t;
|
|
}),
|
|
(e.decode = function(t) {
|
|
return null != t
|
|
? t.toString().replace(/(~~|~2F)/g, function(t) {
|
|
return { '~~': '~', '~2F': '/' }[t];
|
|
})
|
|
: t;
|
|
});
|
|
}),
|
|
(t.prototype.dispose = function() {}),
|
|
(t.prototype.onChange = function(t) {
|
|
var e = this;
|
|
return (
|
|
this._urlListeners.push(t),
|
|
function() {
|
|
return X(e._urlListeners)(t);
|
|
}
|
|
);
|
|
}),
|
|
(t.prototype.html5Mode = function() {
|
|
var t = this.$locationProvider.html5Mode();
|
|
return (t = x(t) ? t.enabled : t) && this.$sniffer.history;
|
|
}),
|
|
(t.prototype.url = function(t, e, r) {
|
|
return (
|
|
void 0 === e && (e = !1),
|
|
E(t) && this.$location.url(t),
|
|
e && this.$location.replace(),
|
|
r && this.$location.state(r),
|
|
this.$location.url()
|
|
);
|
|
}),
|
|
(t.prototype._runtimeServices = function(t, e, r, n) {
|
|
var i = this;
|
|
(this.$location = e),
|
|
(this.$sniffer = r),
|
|
t.$on('$locationChangeSuccess', function(t) {
|
|
return i._urlListeners.forEach(function(e) {
|
|
return e(t);
|
|
});
|
|
});
|
|
var o = y(e),
|
|
a = y(n);
|
|
Q(o, this, o, ['replace', 'path', 'search', 'hash']),
|
|
Q(o, this, o, ['port', 'protocol', 'host']),
|
|
Q(a, this, a, ['baseHref']);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
Pn = (function() {
|
|
function t(t) {
|
|
(this._router = t), (this._urlRouter = t.urlRouter);
|
|
}
|
|
return (
|
|
(t.injectableHandler = function(t, e) {
|
|
return function(r) {
|
|
return N.$injector.invoke(e, null, { $match: r, $stateParams: t.globals.params });
|
|
};
|
|
}),
|
|
(t.prototype.$get = function() {
|
|
var t = this._urlRouter;
|
|
return t.update(!0), t.interceptDeferred || t.listen(), t;
|
|
}),
|
|
(t.prototype.rule = function(t) {
|
|
var e = this;
|
|
if (!P(t)) throw new Error("'rule' must be a function");
|
|
var r = new ar(function() {
|
|
return t(N.$injector, e._router.locationService);
|
|
}, z);
|
|
return this._urlRouter.rule(r), this;
|
|
}),
|
|
(t.prototype.otherwise = function(t) {
|
|
var e = this,
|
|
r = this._urlRouter;
|
|
if (O(t)) r.otherwise(t);
|
|
else {
|
|
if (!P(t)) throw new Error("'rule' must be a string or function");
|
|
r.otherwise(function() {
|
|
return t(N.$injector, e._router.locationService);
|
|
});
|
|
}
|
|
return this;
|
|
}),
|
|
(t.prototype.when = function(e, r) {
|
|
return (V(r) || P(r)) && (r = t.injectableHandler(this._router, r)), this._urlRouter.when(e, r), this;
|
|
}),
|
|
(t.prototype.deferIntercept = function(t) {
|
|
this._urlRouter.deferIntercept(t);
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
n.module('ui.router.angular1', []);
|
|
var kn = n.module('ui.router.init', []),
|
|
On = n.module('ui.router.util', ['ng', 'ui.router.init']),
|
|
xn = n.module('ui.router.router', ['ui.router.util']),
|
|
Vn = n.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']),
|
|
In = n.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']),
|
|
jn = (n.module('ui.router.compat', ['ui.router']), null);
|
|
function An(t) {
|
|
((jn = this.router = new wr()).stateProvider = new En(jn.stateRegistry, jn.stateService)),
|
|
jn.stateRegistry.decorator('views', _n),
|
|
jn.stateRegistry.decorator('onExit', Cn('onExit')),
|
|
jn.stateRegistry.decorator('onRetain', Cn('onRetain')),
|
|
jn.stateRegistry.decorator('onEnter', Cn('onEnter')),
|
|
jn.viewService._pluginapi._viewConfigFactory('ng1', yn());
|
|
var e = (jn.locationService = jn.locationConfig = new Tn(t));
|
|
function r(t, r, n, i, o, a) {
|
|
return e._runtimeServices(i, t, n, r), delete jn.router, delete jn.$get, jn;
|
|
}
|
|
return (
|
|
Tn.monkeyPatchPathParameterType(jn),
|
|
(jn.router = jn),
|
|
(jn.$get = r),
|
|
(r.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache']),
|
|
jn
|
|
);
|
|
}
|
|
An.$inject = ['$locationProvider'];
|
|
var Hn = function(t) {
|
|
return [
|
|
'$uiRouterProvider',
|
|
function(e) {
|
|
var r = e.router[t];
|
|
return (
|
|
(r.$get = function() {
|
|
return r;
|
|
}),
|
|
r
|
|
);
|
|
},
|
|
];
|
|
};
|
|
function Dn(t, e, r) {
|
|
(N.$injector = t),
|
|
(N.$q = e),
|
|
r.stateRegistry
|
|
.get()
|
|
.map(function(t) {
|
|
return t.$$state().resolvables;
|
|
})
|
|
.reduce(yt, [])
|
|
.filter(function(t) {
|
|
return 'deferred' === t.deps;
|
|
})
|
|
.forEach(function(e) {
|
|
return (e.deps = t.annotate(e.resolveFn, t.strictDi));
|
|
});
|
|
}
|
|
Dn.$inject = ['$injector', '$q', '$uiRouter'];
|
|
function qn(t) {
|
|
t.$watch(function() {
|
|
Kt.approximateDigests++;
|
|
});
|
|
}
|
|
(qn.$inject = ['$rootScope']),
|
|
kn.provider('$uiRouter', An),
|
|
xn.provider('$urlRouter', [
|
|
'$uiRouterProvider',
|
|
function(t) {
|
|
return (t.urlRouterProvider = new Pn(t));
|
|
},
|
|
]),
|
|
On.provider('$urlService', Hn('urlService')),
|
|
On.provider('$urlMatcherFactory', [
|
|
'$uiRouterProvider',
|
|
function() {
|
|
return jn.urlMatcherFactory;
|
|
},
|
|
]),
|
|
On.provider('$templateFactory', function() {
|
|
return new Sn();
|
|
}),
|
|
Vn.provider('$stateRegistry', Hn('stateRegistry')),
|
|
Vn.provider('$uiRouterGlobals', Hn('globals')),
|
|
Vn.provider('$transitions', Hn('transitionService')),
|
|
Vn.provider('$state', [
|
|
'$uiRouterProvider',
|
|
function() {
|
|
return G(jn.stateProvider, {
|
|
$get: function() {
|
|
return jn.stateService;
|
|
},
|
|
});
|
|
},
|
|
]),
|
|
Vn.factory('$stateParams', [
|
|
'$uiRouter',
|
|
function(t) {
|
|
return t.globals.params;
|
|
},
|
|
]),
|
|
In.factory('$view', function() {
|
|
return jn.viewService;
|
|
}),
|
|
In.service('$trace', function() {
|
|
return Kt;
|
|
}),
|
|
In.run(qn),
|
|
On.run(['$urlMatcherFactory', function(t) {}]),
|
|
Vn.run(['$state', function(t) {}]),
|
|
xn.run(['$urlRouter', function(t) {}]),
|
|
kn.run(Dn);
|
|
var Nn,
|
|
Fn,
|
|
Un,
|
|
Ln,
|
|
Mn = function(t) {
|
|
return t
|
|
.getTokens()
|
|
.filter(O)
|
|
.map(function(e) {
|
|
var r = t.getResolvable(e);
|
|
return [e, 'NOWAIT' === t.getPolicy(r).async ? r.promise : r.data];
|
|
})
|
|
.reduce(Pt, {});
|
|
};
|
|
function Bn(t) {
|
|
var e,
|
|
r = t.match(/^\s*({[^}]*})\s*$/);
|
|
if (
|
|
(r && (t = '(' + r[1] + ')'),
|
|
!(e = t.replace(/\n/g, ' ').match(/^\s*([^(]*?)\s*(\((.*)\))?\s*$/)) || 4 !== e.length)
|
|
)
|
|
throw new Error("Invalid state ref '" + t + "'");
|
|
return { state: e[1] || null, paramExpr: e[3] || null };
|
|
}
|
|
function Gn(t) {
|
|
var e = t.parent().inheritedData('$uiView'),
|
|
r = c('$cfg.path')(e);
|
|
return r ? kt(r).state.name : void 0;
|
|
}
|
|
function Wn(t, e, r) {
|
|
var n = r.uiState || t.current.name,
|
|
i = G(
|
|
(function(t, e) {
|
|
return { relative: Gn(t) || e.$current, inherit: !0, source: 'sref' };
|
|
})(e, t),
|
|
r.uiStateOpts || {},
|
|
),
|
|
o = t.href(n, r.uiStateParams, i);
|
|
return { uiState: n, uiStateParams: r.uiStateParams, uiStateOpts: i, href: o };
|
|
}
|
|
function zn(t) {
|
|
var e = '[object SVGAnimatedString]' === Object.prototype.toString.call(t.prop('href')),
|
|
r = 'FORM' === t[0].nodeName;
|
|
return {
|
|
attr: r ? 'action' : e ? 'xlink:href' : 'href',
|
|
isAnchor: 'A' === t.prop('tagName').toUpperCase(),
|
|
clickable: !r,
|
|
};
|
|
}
|
|
function Jn(t, e, r, n, i) {
|
|
return function(o) {
|
|
var a = o.which || o.button,
|
|
u = i();
|
|
if (!(a > 1 || o.ctrlKey || o.metaKey || o.shiftKey || t.attr('target'))) {
|
|
var s = r(function() {
|
|
e.go(u.uiState, u.uiStateParams, u.uiStateOpts);
|
|
});
|
|
o.preventDefault();
|
|
var c = n.isAnchor && !u.href ? 1 : 0;
|
|
o.preventDefault = function() {
|
|
c-- <= 0 && r.cancel(s);
|
|
};
|
|
}
|
|
};
|
|
}
|
|
function Qn(t, e, r, n) {
|
|
var i;
|
|
n && (i = n.events), V(i) || (i = ['click']);
|
|
for (var o = t.on ? 'on' : 'bind', a = 0, u = i; a < u.length; a++) {
|
|
var s = u[a];
|
|
t[o](s, r);
|
|
}
|
|
e.$on('$destroy', function() {
|
|
for (var e = t.off ? 'off' : 'unbind', n = 0, o = i; n < o.length; n++) {
|
|
var a = o[n];
|
|
t[e](a, r);
|
|
}
|
|
});
|
|
}
|
|
function Kn(t) {
|
|
var e = function(e, r, n) {
|
|
return t.is(e, r, n);
|
|
};
|
|
return (e.$stateful = !0), e;
|
|
}
|
|
function Yn(t) {
|
|
var e = function(e, r, n) {
|
|
return t.includes(e, r, n);
|
|
};
|
|
return (e.$stateful = !0), e;
|
|
}
|
|
function Zn(t, e, r, i, o, a) {
|
|
var u = c('viewDecl.controllerAs'),
|
|
s = c('viewDecl.resolveAs');
|
|
return {
|
|
restrict: 'ECA',
|
|
priority: -400,
|
|
compile: function(i) {
|
|
var a = i.html();
|
|
return (
|
|
i.empty(),
|
|
function(i, c) {
|
|
var f = c.data('$uiView');
|
|
if (!f) return c.html(a), void t(c.contents())(i);
|
|
var l = f.$cfg || { viewDecl: {}, getTemplate: J },
|
|
h = l.path && new ge(l.path);
|
|
c.html(l.getTemplate(c, h) || a), Kt.traceUIViewFill(f.$uiView, c.html());
|
|
var p = t(c.contents()),
|
|
v = l.controller,
|
|
d = u(l),
|
|
m = s(l),
|
|
y = h && Mn(h);
|
|
if (((i[m] = y), v)) {
|
|
var g = e(v, G({}, y, { $scope: i, $element: c }));
|
|
d && ((i[d] = g), (i[d][m] = y)),
|
|
c.data('$ngControllerController', g),
|
|
c.children().data('$ngControllerController', g),
|
|
ei(o, r, g, i, l);
|
|
}
|
|
if (O(l.viewDecl.component))
|
|
var _ = l.viewDecl.component,
|
|
w = Re(_),
|
|
$ = new RegExp('^(x-|data-)?' + w + '$', 'i'),
|
|
S = i.$watch(
|
|
function() {
|
|
var t = [].slice.call(c[0].children).filter(function(t) {
|
|
return t && t.tagName && $.exec(t.tagName);
|
|
});
|
|
return t && n.element(t).data('$' + _ + 'Controller');
|
|
},
|
|
function(t) {
|
|
t && (ei(o, r, t, i, l), S());
|
|
},
|
|
);
|
|
p(i);
|
|
}
|
|
);
|
|
},
|
|
};
|
|
}
|
|
(Nn = [
|
|
'$uiRouter',
|
|
'$timeout',
|
|
function(t, e) {
|
|
var r = t.stateService;
|
|
return {
|
|
restrict: 'A',
|
|
require: ['?^uiSrefActive', '?^uiSrefActiveEq'],
|
|
link: function(n, i, o, a) {
|
|
var u,
|
|
s = zn(i),
|
|
c = a[1] || a[0],
|
|
f = null,
|
|
l = {},
|
|
h = function() {
|
|
return Wn(r, i, l);
|
|
},
|
|
p = Bn(o.uiSref);
|
|
function v() {
|
|
var t = h();
|
|
f && f(), c && (f = c.$$addStateInfo(t.uiState, t.uiStateParams)), null != t.href && o.$set(s.attr, t.href);
|
|
}
|
|
(l.uiState = p.state),
|
|
(l.uiStateOpts = o.uiSrefOpts ? n.$eval(o.uiSrefOpts) : {}),
|
|
p.paramExpr &&
|
|
(n.$watch(
|
|
p.paramExpr,
|
|
function(t) {
|
|
(l.uiStateParams = G({}, t)), v();
|
|
},
|
|
!0,
|
|
),
|
|
(l.uiStateParams = G({}, n.$eval(p.paramExpr)))),
|
|
v(),
|
|
n.$on('$destroy', t.stateRegistry.onStatesChanged(v)),
|
|
n.$on('$destroy', t.transitionService.onSuccess({}, v)),
|
|
s.clickable && ((u = Jn(i, r, e, s, h)), Qn(i, n, u, l.uiStateOpts));
|
|
},
|
|
};
|
|
},
|
|
]),
|
|
(Fn = [
|
|
'$uiRouter',
|
|
'$timeout',
|
|
function(t, e) {
|
|
var r = t.stateService;
|
|
return {
|
|
restrict: 'A',
|
|
require: ['?^uiSrefActive', '?^uiSrefActiveEq'],
|
|
link: function(n, i, o, a) {
|
|
var u,
|
|
s = zn(i),
|
|
c = a[1] || a[0],
|
|
f = null,
|
|
l = {},
|
|
h = function() {
|
|
return Wn(r, i, l);
|
|
},
|
|
p = ['uiState', 'uiStateParams', 'uiStateOpts'],
|
|
v = p.reduce(function(t, e) {
|
|
return (t[e] = J), t;
|
|
}, {});
|
|
function d() {
|
|
var t = h();
|
|
f && f(),
|
|
c && (f = c.$$addStateInfo(t.uiState, t.uiStateParams)),
|
|
null != t.href && o.$set(s.attr, t.href);
|
|
}
|
|
p.forEach(function(t) {
|
|
(l[t] = o[t] ? n.$eval(o[t]) : null),
|
|
o.$observe(t, function(e) {
|
|
v[t](),
|
|
(v[t] = n.$watch(
|
|
e,
|
|
function(e) {
|
|
(l[t] = e), d();
|
|
},
|
|
!0,
|
|
));
|
|
});
|
|
}),
|
|
d(),
|
|
n.$on('$destroy', t.stateRegistry.onStatesChanged(d)),
|
|
n.$on('$destroy', t.transitionService.onSuccess({}, d)),
|
|
s.clickable && ((u = Jn(i, r, e, s, h)), Qn(i, n, u, l.uiStateOpts));
|
|
},
|
|
};
|
|
},
|
|
]),
|
|
(Un = [
|
|
'$state',
|
|
'$stateParams',
|
|
'$interpolate',
|
|
'$uiRouter',
|
|
function(t, e, r, n) {
|
|
return {
|
|
restrict: 'A',
|
|
controller: [
|
|
'$scope',
|
|
'$element',
|
|
'$attrs',
|
|
function(e, i, o) {
|
|
var a,
|
|
u,
|
|
s,
|
|
c,
|
|
f,
|
|
l = [];
|
|
a = r(o.uiSrefActiveEq || '', !1)(e);
|
|
try {
|
|
u = e.$eval(o.uiSrefActive);
|
|
} catch (t) {}
|
|
function h(t) {
|
|
t.promise.then(m, J);
|
|
}
|
|
function p() {
|
|
v(u);
|
|
}
|
|
function v(t) {
|
|
x(t) &&
|
|
((l = []),
|
|
B(t, function(t, r) {
|
|
var n = function(t, r) {
|
|
var n = Bn(t);
|
|
d(n.state, e.$eval(n.paramExpr), r);
|
|
};
|
|
O(t)
|
|
? n(t, r)
|
|
: V(t) &&
|
|
B(t, function(t) {
|
|
n(t, r);
|
|
});
|
|
}));
|
|
}
|
|
function d(e, r, n) {
|
|
var o = { state: t.get(e, Gn(i)) || { name: e }, params: r, activeClass: n };
|
|
return (
|
|
l.push(o),
|
|
function() {
|
|
X(l)(o);
|
|
}
|
|
);
|
|
}
|
|
function m() {
|
|
var r = function(t) {
|
|
return t.split(/\s/).filter(z);
|
|
},
|
|
n = function(t) {
|
|
return t
|
|
.map(function(t) {
|
|
return t.activeClass;
|
|
})
|
|
.map(r)
|
|
.reduce(yt, []);
|
|
},
|
|
o = n(l)
|
|
.concat(r(a))
|
|
.reduce(wt, []),
|
|
u = n(
|
|
l.filter(function(e) {
|
|
return t.includes(e.state.name, e.params);
|
|
}),
|
|
),
|
|
s = !!l.filter(function(e) {
|
|
return t.is(e.state.name, e.params);
|
|
}).length
|
|
? r(a)
|
|
: [],
|
|
c = u.concat(s).reduce(wt, []),
|
|
f = o.filter(function(t) {
|
|
return !Y(c, t);
|
|
});
|
|
e.$evalAsync(function() {
|
|
c.forEach(function(t) {
|
|
return i.addClass(t);
|
|
}),
|
|
f.forEach(function(t) {
|
|
return i.removeClass(t);
|
|
});
|
|
});
|
|
}
|
|
v((u = u || r(o.uiSrefActive || '', !1)(e))),
|
|
(this.$$addStateInfo = function(t, e) {
|
|
if (!(x(u) && l.length > 0)) {
|
|
var r = d(t, e, u);
|
|
return m(), r;
|
|
}
|
|
}),
|
|
e.$on(
|
|
'$destroy',
|
|
((s = n.stateRegistry.onStatesChanged(p)),
|
|
(c = n.transitionService.onStart({}, h)),
|
|
(f = e.$on('$stateChangeSuccess', m)),
|
|
function() {
|
|
s(), c(), f();
|
|
}),
|
|
),
|
|
n.globals.transition && h(n.globals.transition),
|
|
m();
|
|
},
|
|
],
|
|
};
|
|
},
|
|
]),
|
|
n
|
|
.module('ui.router.state')
|
|
.directive('uiSref', Nn)
|
|
.directive('uiSrefActive', Un)
|
|
.directive('uiSrefActiveEq', Un)
|
|
.directive('uiState', Fn),
|
|
(Kn.$inject = ['$state']),
|
|
(Yn.$inject = ['$state']),
|
|
n
|
|
.module('ui.router.state')
|
|
.filter('isState', Kn)
|
|
.filter('includedByState', Yn),
|
|
(Ln = [
|
|
'$view',
|
|
'$animate',
|
|
'$uiViewScroll',
|
|
'$interpolate',
|
|
'$q',
|
|
function(t, e, r, i, o) {
|
|
var a = { $cfg: { viewDecl: { $context: t._pluginapi._rootViewContext() } }, $uiView: {} },
|
|
u = {
|
|
count: 0,
|
|
restrict: 'ECA',
|
|
terminal: !0,
|
|
priority: 400,
|
|
transclude: 'element',
|
|
compile: function(s, f, l) {
|
|
return function(s, f, h) {
|
|
var p,
|
|
v,
|
|
d,
|
|
m,
|
|
y,
|
|
g = h.onload || '',
|
|
_ = h.autoscroll,
|
|
w = {
|
|
enter: function(t, r, i) {
|
|
n.version.minor > 2 ? e.enter(t, null, r).then(i) : e.enter(t, null, r, i);
|
|
},
|
|
leave: function(t, r) {
|
|
n.version.minor > 2 ? e.leave(t).then(r) : e.leave(t, r);
|
|
},
|
|
},
|
|
$ = f.inheritedData('$uiView') || a,
|
|
S = i(h.uiView || h.name || '')(s) || '$default',
|
|
b = {
|
|
$type: 'ng1',
|
|
id: u.count++,
|
|
name: S,
|
|
fqn: $.$uiView.fqn ? $.$uiView.fqn + '.' + S : S,
|
|
config: null,
|
|
configUpdated: function(t) {
|
|
if (t && !(t instanceof $n)) return;
|
|
if (((e = m), (r = t), e === r)) return;
|
|
var e, r;
|
|
Kt.traceUIViewConfigUpdated(b, t && t.viewDecl && t.viewDecl.$context), (m = t), R(t);
|
|
},
|
|
get creationContext() {
|
|
var t = c('$cfg.viewDecl.$context')($),
|
|
e = c('$uiView.creationContext')($);
|
|
return t || e;
|
|
},
|
|
};
|
|
function R(t) {
|
|
var e = s.$new(),
|
|
n = o.defer(),
|
|
i = o.defer(),
|
|
a = { $cfg: t, $uiView: b },
|
|
u = { $animEnter: n.promise, $animLeave: i.promise, $$animLeave: i };
|
|
e.$emit('$viewContentLoading', S);
|
|
var c = l(e, function(t) {
|
|
t.data('$uiViewAnim', u),
|
|
t.data('$uiView', a),
|
|
w.enter(t, f, function() {
|
|
n.resolve(), d && d.$emit('$viewContentAnimationEnded'), ((E(_) && !_) || s.$eval(_)) && r(t);
|
|
}),
|
|
(function() {
|
|
if (
|
|
(p &&
|
|
(Kt.traceUIViewEvent('Removing (previous) el', p.data('$uiView')), p.remove(), (p = null)),
|
|
d && (Kt.traceUIViewEvent('Destroying scope', b), d.$destroy(), (d = null)),
|
|
v)
|
|
) {
|
|
var t = v.data('$uiViewAnim');
|
|
Kt.traceUIViewEvent('Animate out', t),
|
|
w.leave(v, function() {
|
|
t.$$animLeave.resolve(), (p = null);
|
|
}),
|
|
(p = v),
|
|
(v = null);
|
|
}
|
|
})();
|
|
});
|
|
(v = c), (d = e).$emit('$viewContentLoaded', t || m), d.$eval(g);
|
|
}
|
|
Kt.traceUIViewEvent('Linking', b),
|
|
f.data('$uiView', { $uiView: b }),
|
|
R(),
|
|
(y = t.registerUIView(b)),
|
|
s.$on('$destroy', function() {
|
|
Kt.traceUIViewEvent('Destroying/Unregistering', b), y();
|
|
});
|
|
};
|
|
},
|
|
};
|
|
return u;
|
|
},
|
|
]),
|
|
(Zn.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout']);
|
|
var Xn = 'function' == typeof n.module('ui.router').component,
|
|
ti = 0;
|
|
function ei(t, e, r, n, i) {
|
|
!P(r.$onInit) || (i.viewDecl.component && Xn) || r.$onInit();
|
|
var o = kt(i.path).state.self,
|
|
a = { bind: r };
|
|
if (P(r.uiOnParamsChanged)) {
|
|
var u = new ge(i.path).getResolvable('$transition$').data;
|
|
n.$on(
|
|
'$destroy',
|
|
e.onSuccess(
|
|
{},
|
|
function(t) {
|
|
if (t !== u && -1 === t.exiting().indexOf(o)) {
|
|
var e = t.params('to'),
|
|
n = t.params('from'),
|
|
i = function(t) {
|
|
return t.paramSchema;
|
|
},
|
|
a = t
|
|
.treeChanges('to')
|
|
.map(i)
|
|
.reduce(yt, []),
|
|
s = t
|
|
.treeChanges('from')
|
|
.map(i)
|
|
.reduce(yt, []),
|
|
c = a.filter(function(t) {
|
|
var r = s.indexOf(t);
|
|
return -1 === r || !s[r].type.equals(e[t.id], n[t.id]);
|
|
});
|
|
if (c.length) {
|
|
var f = c.map(function(t) {
|
|
return t.id;
|
|
}),
|
|
l = ft(e, function(t, e) {
|
|
return -1 !== f.indexOf(e);
|
|
});
|
|
r.uiOnParamsChanged(l, t);
|
|
}
|
|
}
|
|
},
|
|
a,
|
|
),
|
|
);
|
|
}
|
|
if (P(r.uiCanExit)) {
|
|
var s = ti++,
|
|
c = function(t) {
|
|
return !!t && ((t._uiCanExitIds && !0 === t._uiCanExitIds[s]) || c(t.redirectedFrom()));
|
|
},
|
|
f = { exiting: o.name };
|
|
n.$on(
|
|
'$destroy',
|
|
e.onBefore(
|
|
f,
|
|
function(e) {
|
|
var n,
|
|
i = (e._uiCanExitIds = e._uiCanExitIds || {});
|
|
return (
|
|
c(e) ||
|
|
(n = t.when(r.uiCanExit(e))).then(function(t) {
|
|
return (i[s] = !1 !== t);
|
|
}),
|
|
n
|
|
);
|
|
},
|
|
a,
|
|
),
|
|
);
|
|
}
|
|
}
|
|
n.module('ui.router.state').directive('uiView', Ln),
|
|
n.module('ui.router.state').directive('uiView', Zn),
|
|
n.module('ui.router.state').provider('$uiViewScroll', function() {
|
|
var t = !1;
|
|
(this.useAnchorScroll = function() {
|
|
t = !0;
|
|
}),
|
|
(this.$get = [
|
|
'$anchorScroll',
|
|
'$timeout',
|
|
function(e, r) {
|
|
return t
|
|
? e
|
|
: function(t) {
|
|
return r(
|
|
function() {
|
|
t[0].scrollIntoView();
|
|
},
|
|
0,
|
|
!1,
|
|
);
|
|
};
|
|
},
|
|
]);
|
|
});
|
|
(t.default = 'ui.router'),
|
|
(t.core = mn),
|
|
(t.watchDigests = qn),
|
|
(t.getLocals = Mn),
|
|
(t.getNg1ViewConfigFactory = yn),
|
|
(t.ng1ViewsBuilder = _n),
|
|
(t.Ng1ViewConfig = $n),
|
|
(t.StateProvider = En),
|
|
(t.UrlRouterProvider = Pn),
|
|
(t.root = F),
|
|
(t.fromJson = L),
|
|
(t.toJson = M),
|
|
(t.forEach = B),
|
|
(t.extend = G),
|
|
(t.equals = W),
|
|
(t.identity = z),
|
|
(t.noop = J),
|
|
(t.createProxyFunctions = Q),
|
|
(t.inherit = K),
|
|
(t.inArray = Y),
|
|
(t._inArray = Z),
|
|
(t.removeFrom = X),
|
|
(t._removeFrom = tt),
|
|
(t.pushTo = et),
|
|
(t._pushTo = rt),
|
|
(t.deregAll = nt),
|
|
(t.defaults = it),
|
|
(t.mergeR = ot),
|
|
(t.ancestors = at),
|
|
(t.pick = ut),
|
|
(t.omit = st),
|
|
(t.pluck = ct),
|
|
(t.filter = ft),
|
|
(t.find = lt),
|
|
(t.mapObj = ht),
|
|
(t.map = pt),
|
|
(t.values = vt),
|
|
(t.allTrueR = dt),
|
|
(t.anyTrueR = mt),
|
|
(t.unnestR = yt),
|
|
(t.flattenR = gt),
|
|
(t.pushR = _t),
|
|
(t.uniqR = wt),
|
|
(t.unnest = $t),
|
|
(t.flatten = St),
|
|
(t.assertPredicate = bt),
|
|
(t.assertMap = Rt),
|
|
(t.assertFn = Et),
|
|
(t.pairs = Ct),
|
|
(t.arrayTuples = Tt),
|
|
(t.applyPairs = Pt),
|
|
(t.tail = kt),
|
|
(t.copy = Ot),
|
|
(t._extend = xt),
|
|
(t.silenceUncaughtInPromise = jt),
|
|
(t.silentRejection = At),
|
|
(t.notImplemented = q),
|
|
(t.services = N),
|
|
(t.Glob = w),
|
|
(t.curry = i),
|
|
(t.compose = o),
|
|
(t.pipe = a),
|
|
(t.prop = u),
|
|
(t.propEq = s),
|
|
(t.parse = c),
|
|
(t.not = f),
|
|
(t.and = l),
|
|
(t.or = h),
|
|
(t.all = p),
|
|
(t.any = v),
|
|
(t.is = d),
|
|
(t.eq = m),
|
|
(t.val = y),
|
|
(t.invoke = g),
|
|
(t.pattern = _),
|
|
(t.isUndefined = R),
|
|
(t.isDefined = E),
|
|
(t.isNull = C),
|
|
(t.isNullOrUndefined = T),
|
|
(t.isFunction = P),
|
|
(t.isNumber = k),
|
|
(t.isString = O),
|
|
(t.isObject = x),
|
|
(t.isArray = V),
|
|
(t.isDate = I),
|
|
(t.isRegExp = j),
|
|
(t.isState = A),
|
|
(t.isInjectable = H),
|
|
(t.isPromise = D),
|
|
(t.Queue = Ht),
|
|
(t.maxLength = Se),
|
|
(t.padString = be),
|
|
(t.kebobString = Re),
|
|
(t.functionToString = Ee),
|
|
(t.fnToString = Ce),
|
|
(t.stringify = ke),
|
|
(t.beforeAfterSubstr = Oe),
|
|
(t.hostRegex = xe),
|
|
(t.stripLastPathElement = Ve),
|
|
(t.splitHash = Ie),
|
|
(t.splitQuery = je),
|
|
(t.splitEqual = Ae),
|
|
(t.trimHashVal = He),
|
|
(t.splitOnDelim = De),
|
|
(t.joinNeighborsR = qe),
|
|
(t.Trace = Qt),
|
|
(t.trace = Kt),
|
|
(t.Param = se),
|
|
(t.ParamTypes = Fe),
|
|
(t.StateParams = Ue),
|
|
(t.ParamType = ie),
|
|
(t.PathNode = ce),
|
|
(t.PathUtils = fe),
|
|
(t.resolvePolicies = pe),
|
|
(t.defaultResolvePolicy = le),
|
|
(t.Resolvable = he),
|
|
(t.NATIVE_INJECTOR_TOKEN = ye),
|
|
(t.ResolveContext = ge),
|
|
(t.resolvablesBuilder = Ke),
|
|
(t.StateBuilder = Ye),
|
|
(t.StateObject = $),
|
|
(t.StateMatcher = Ze),
|
|
(t.StateQueueManager = Xe),
|
|
(t.StateRegistry = tr),
|
|
(t.StateService = Mr),
|
|
(t.TargetState = Yt),
|
|
(t.HookBuilder = ne),
|
|
(t.matchState = te),
|
|
(t.RegisteredHook = ee),
|
|
(t.makeEvent = re),
|
|
(t.Rejection = qt),
|
|
(t.Transition = $e),
|
|
(t.TransitionHook = Xt),
|
|
(t.TransitionEventType = qr),
|
|
(t.defaultTransOpts = Ur),
|
|
(t.TransitionService = Lr),
|
|
(t.UrlMatcher = nr),
|
|
(t.UrlMatcherFactory = ir),
|
|
(t.UrlRouter = sr),
|
|
(t.UrlRuleFactory = or),
|
|
(t.BaseUrlRule = ar),
|
|
(t.UrlService = gr),
|
|
(t.ViewService = fr),
|
|
(t.UIRouterGlobals = lr),
|
|
(t.UIRouter = wr),
|
|
(t.$q = Br),
|
|
(t.$injector = Jr),
|
|
(t.BaseLocationServices = en),
|
|
(t.HashLocationService = nn),
|
|
(t.MemoryLocationService = an),
|
|
(t.PushStateLocationService = sn),
|
|
(t.MemoryLocationConfig = cn),
|
|
(t.BrowserLocationConfig = fn),
|
|
(t.keyValsToObjectR = Qr),
|
|
(t.getParams = Kr),
|
|
(t.parseUrl = Yr),
|
|
(t.buildUrl = Zr),
|
|
(t.locationPluginFactory = Xr),
|
|
(t.servicesPlugin = ln),
|
|
(t.hashLocationPlugin = hn),
|
|
(t.pushStateLocationPlugin = pn),
|
|
(t.memoryLocationPlugin = vn),
|
|
(t.UIRouterPluginBase = dn),
|
|
Object.defineProperty(t, '__esModule', { value: !0 });
|
|
});
|
|
//# sourceMappingURL=angular-ui-router.min.js.map
|