UNPKG

@ngx-loading-bar/http

Version:

Automatic page loading / progress bar for Angular

75 lines 6.34 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { LoadingBarService } from '@ngx-loading-bar/core'; import { Injectable } from '@angular/core'; import { ConnectionBackend, Http, RequestOptions } from '@angular/http'; import { finalize } from 'rxjs/operators'; /** * @record */ export function LoadingBarRequestOptionsArgs() { } if (false) { /** @type {?|undefined} */ LoadingBarRequestOptionsArgs.prototype.ignoreLoadingBar; } export class LoadingBarHttp extends Http { /** * @param {?} _backend * @param {?} _defaultOptions * @param {?} loadingBar */ constructor(_backend, _defaultOptions, loadingBar) { super(_backend, _defaultOptions); this.loadingBar = loadingBar; } /** * @param {?} url * @param {?=} options * @return {?} */ request(url, options) { /** @type {?} */ let headers = options && options.headers; if (!headers && url && ((/** @type {?} */ (url))).headers) { headers = ((/** @type {?} */ (url))).headers; } if (headers && headers.has('ignoreLoadingBar')) { headers.delete('ignoreLoadingBar'); return super.request(url, options); } /** @type {?} */ const response$ = super.request(url, options); if (options && options.ignoreLoadingBar === true) { return response$; } /** @type {?} */ let started = false; /** @type {?} */ const responseSubscribe = response$.subscribe.bind(response$); response$.subscribe = (...args) => { this.loadingBar.start(); started = true; return responseSubscribe(...args); }; return response$.pipe(finalize(() => started && this.loadingBar.complete())); } } LoadingBarHttp.decorators = [ { type: Injectable } ]; /** @nocollapse */ LoadingBarHttp.ctorParameters = () => [ { type: ConnectionBackend }, { type: RequestOptions }, { type: LoadingBarService } ]; if (false) { /** * @type {?} * @private */ LoadingBarHttp.prototype.loadingBar; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1iYXIuaHR0cC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtbG9hZGluZy1iYXIvaHR0cC8iLCJzb3VyY2VzIjpbImxvYWRpbmctYmFyLmh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBVyxjQUFjLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUxQyxrREFFQzs7O0lBREMsd0RBQTJCOztBQUk3QixNQUFNLE9BQU8sY0FBZSxTQUFRLElBQUk7Ozs7OztJQUN0QyxZQUFZLFFBQTJCLEVBQUUsZUFBK0IsRUFBVSxVQUE2QjtRQUM3RyxLQUFLLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRCtDLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBRS9HLENBQUM7Ozs7OztJQUVELE9BQU8sQ0FBQyxHQUFxQixFQUFFLE9BQXNDOztZQUMvRCxPQUFPLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPO1FBQ3hDLElBQUksQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQVUsR0FBRyxFQUFBLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDOUMsT0FBTyxHQUFHLENBQUMsbUJBQVUsR0FBRyxFQUFBLENBQUMsQ0FBQyxPQUFPLENBQUM7U0FDbkM7UUFFRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDOUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRW5DLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDcEM7O2NBRUssU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztRQUM3QyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBQ2hELE9BQU8sU0FBUyxDQUFDO1NBQ2xCOztZQUVHLE9BQU8sR0FBRyxLQUFLOztjQUNiLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3RCxTQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixPQUFPLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUNuQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDdEQsQ0FBQztJQUNKLENBQUM7OztZQWxDRixVQUFVOzs7O1lBUkYsaUJBQWlCO1lBQWlCLGNBQWM7WUFGaEQsaUJBQWlCOzs7Ozs7O0lBWWtELG9DQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRpbmdCYXJTZXJ2aWNlIH0gZnJvbSAnQG5neC1sb2FkaW5nLWJhci9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3Rpb25CYWNrZW5kLCBIdHRwLCBSZXF1ZXN0LCBSZXF1ZXN0T3B0aW9ucywgUmVxdWVzdE9wdGlvbnNBcmdzLCBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0JhclJlcXVlc3RPcHRpb25zQXJncyBleHRlbmRzIFJlcXVlc3RPcHRpb25zQXJncyB7XG4gIGlnbm9yZUxvYWRpbmdCYXI/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9hZGluZ0Jhckh0dHAgZXh0ZW5kcyBIdHRwIHtcbiAgY29uc3RydWN0b3IoX2JhY2tlbmQ6IENvbm5lY3Rpb25CYWNrZW5kLCBfZGVmYXVsdE9wdGlvbnM6IFJlcXVlc3RPcHRpb25zLCBwcml2YXRlIGxvYWRpbmdCYXI6IExvYWRpbmdCYXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoX2JhY2tlbmQsIF9kZWZhdWx0T3B0aW9ucyk7XG4gIH1cblxuICByZXF1ZXN0KHVybDogc3RyaW5nIHwgUmVxdWVzdCwgb3B0aW9ucz86IExvYWRpbmdCYXJSZXF1ZXN0T3B0aW9uc0FyZ3MpOiBPYnNlcnZhYmxlPFJlc3BvbnNlPiB7XG4gICAgbGV0IGhlYWRlcnMgPSBvcHRpb25zICYmIG9wdGlvbnMuaGVhZGVycztcbiAgICBpZiAoIWhlYWRlcnMgJiYgdXJsICYmICg8UmVxdWVzdD4gdXJsKS5oZWFkZXJzKSB7XG4gICAgICBoZWFkZXJzID0gKDxSZXF1ZXN0PiB1cmwpLmhlYWRlcnM7XG4gICAgfVxuXG4gICAgaWYgKGhlYWRlcnMgJiYgaGVhZGVycy5oYXMoJ2lnbm9yZUxvYWRpbmdCYXInKSkge1xuICAgICAgaGVhZGVycy5kZWxldGUoJ2lnbm9yZUxvYWRpbmdCYXInKTtcblxuICAgICAgcmV0dXJuIHN1cGVyLnJlcXVlc3QodXJsLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSQgPSBzdXBlci5yZXF1ZXN0KHVybCwgb3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5pZ25vcmVMb2FkaW5nQmFyID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UkO1xuICAgIH1cblxuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgY29uc3QgcmVzcG9uc2VTdWJzY3JpYmUgPSByZXNwb25zZSQuc3Vic2NyaWJlLmJpbmQocmVzcG9uc2UkKTtcbiAgICByZXNwb25zZSQuc3Vic2NyaWJlID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZ0Jhci5zdGFydCgpO1xuICAgICAgc3RhcnRlZCA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzcG9uc2VTdWJzY3JpYmUoLi4uYXJncyk7XG4gICAgfTtcblxuICAgIHJldHVybiByZXNwb25zZSQucGlwZShcbiAgICAgIGZpbmFsaXplKCgpID0+IHN0YXJ0ZWQgJiYgdGhpcy5sb2FkaW5nQmFyLmNvbXBsZXRlKCkpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==