UNPKG

coveo-search-ui

Version:

Coveo JavaScript Search Framework

183 lines (178 loc) • 5.17 kB
!(function(e) { function n() {} function t(e, n) { return function() { e.apply(n, arguments); }; } function o(e) { if ('object' != typeof this) throw new TypeError('Promises must be constructed via new'); if ('function' != typeof e) throw new TypeError('not a function'); (this._state = 0), (this._handled = !1), (this._value = void 0), (this._deferreds = []), s(e, this); } function i(e, n) { for (; 3 === e._state; ) e = e._value; return 0 === e._state ? void e._deferreds.push(n) : ((e._handled = !0), void o._immediateFn(function() { var t = 1 === e._state ? n.onFulfilled : n.onRejected; if (null === t) return void (1 === e._state ? r : u)(n.promise, e._value); var o; try { o = t(e._value); } catch (i) { return void u(n.promise, i); } r(n.promise, o); })); } function r(e, n) { try { if (n === e) throw new TypeError('A promise cannot be resolved with itself.'); if (n && ('object' == typeof n || 'function' == typeof n)) { var i = n.then; if (n instanceof o) return (e._state = 3), (e._value = n), void f(e); if ('function' == typeof i) return void s(t(i, n), e); } (e._state = 1), (e._value = n), f(e); } catch (r) { u(e, r); } } function u(e, n) { (e._state = 2), (e._value = n), f(e); } function f(e) { 2 === e._state && 0 === e._deferreds.length && o._immediateFn(function() { e._handled || o._unhandledRejectionFn(e._value); }); for (var n = 0, t = e._deferreds.length; n < t; n++) i(e, e._deferreds[n]); e._deferreds = null; } function c(e, n, t) { (this.onFulfilled = 'function' == typeof e ? e : null), (this.onRejected = 'function' == typeof n ? n : null), (this.promise = t); } function s(e, n) { var t = !1; try { e( function(e) { t || ((t = !0), r(n, e)); }, function(e) { t || ((t = !0), u(n, e)); } ); } catch (o) { if (t) return; (t = !0), u(n, o); } } var a = setTimeout; (o.prototype['catch'] = function(e) { return this.then(null, e); }), (o.prototype.then = function(e, t) { var o = new this.constructor(n); return i(this, new c(e, t, o)), o; }), (o.all = function(e) { var n = Array.prototype.slice.call(e); return new o(function(e, t) { function o(r, u) { try { if (u && ('object' == typeof u || 'function' == typeof u)) { var f = u.then; if ('function' == typeof f) return void f.call( u, function(e) { o(r, e); }, t ); } (n[r] = u), 0 === --i && e(n); } catch (c) { t(c); } } if (0 === n.length) return e([]); for (var i = n.length, r = 0; r < n.length; r++) o(r, n[r]); }); }), (o.resolve = function(e) { return e && 'object' == typeof e && e.constructor === o ? e : new o(function(n) { n(e); }); }), (o.reject = function(e) { return new o(function(n, t) { t(e); }); }), (o.race = function(e) { return new o(function(n, t) { for (var o = 0, i = e.length; o < i; o++) e[o].then(n, t); }); }), (o._immediateFn = ('function' == typeof setImmediate && function(e) { setImmediate(e); }) || function(e) { a(e, 0); }), (o._unhandledRejectionFn = function(e) { 'undefined' != typeof console && console && console.warn('Possible Unhandled Promise Rejection:', e); }), (o._setImmediateFn = function(e) { o._immediateFn = e; }), (o._setUnhandledRejectionFn = function(e) { o._unhandledRejectionFn = e; }), 'undefined' != typeof module && module.exports ? (module.exports = o) : e.Promise || (e.Promise = o); })(this); Promise.prototype['finally'] = function finallyPolyfill(callback) { var constructor = this.constructor; return this.then( function(value) { return constructor.resolve(callback()).then(function() { return value; }); }, function(reason) { return constructor.resolve(callback()).then(function() { throw reason; }); } ); }; var rethrowError = function(self) { self.then(null, function(err) { setTimeout(function() { throw err; }, 0); }); }; if (typeof Promise.prototype['done'] !== 'function') { Promise.prototype['done'] = function(onFulfilled, onRejected) { var self = arguments.length ? this.then.apply(this, arguments) : this; rethrowError(self); return this; }; } if (typeof Promise.prototype['fail'] !== 'function') { Promise.prototype['fail'] = function(onFulfilled, onRejected) { var self = arguments.length ? this.catch.apply(this, arguments) : this; rethrowError(self); return this; }; }