@ngx-loading-bar/http
Version:
Automatic page loading / progress bar for Angular
85 lines • 7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
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;
}
var LoadingBarHttp = /** @class */ (function (_super) {
tslib_1.__extends(LoadingBarHttp, _super);
function LoadingBarHttp(_backend, _defaultOptions, loadingBar) {
var _this = _super.call(this, _backend, _defaultOptions) || this;
_this.loadingBar = loadingBar;
return _this;
}
/**
* @param {?} url
* @param {?=} options
* @return {?}
*/
LoadingBarHttp.prototype.request = /**
* @param {?} url
* @param {?=} options
* @return {?}
*/
function (url, options) {
var _this = this;
/** @type {?} */
var headers = options && options.headers;
if (!headers && url && ((/** @type {?} */ (url))).headers) {
headers = ((/** @type {?} */ (url))).headers;
}
if (headers && headers.has('ignoreLoadingBar')) {
headers.delete('ignoreLoadingBar');
return _super.prototype.request.call(this, url, options);
}
/** @type {?} */
var response$ = _super.prototype.request.call(this, url, options);
if (options && options.ignoreLoadingBar === true) {
return response$;
}
/** @type {?} */
var started = false;
/** @type {?} */
var responseSubscribe = response$.subscribe.bind(response$);
response$.subscribe = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
_this.loadingBar.start();
started = true;
return responseSubscribe.apply(void 0, tslib_1.__spread(args));
};
return response$.pipe(finalize(function () { return started && _this.loadingBar.complete(); }));
};
LoadingBarHttp.decorators = [
{ type: Injectable }
];
/** @nocollapse */
LoadingBarHttp.ctorParameters = function () { return [
{ type: ConnectionBackend },
{ type: RequestOptions },
{ type: LoadingBarService }
]; };
return LoadingBarHttp;
}(Http));
export { LoadingBarHttp };
if (false) {
/**
* @type {?}
* @private
*/
LoadingBarHttp.prototype.loadingBar;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1iYXIuaHR0cC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtbG9hZGluZy1iYXIvaHR0cC8iLCJzb3VyY2VzIjpbImxvYWRpbmctYmFyLmh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQVcsY0FBYyxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUUvRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFMUMsa0RBRUM7OztJQURDLHdEQUEyQjs7QUFHN0I7SUFDb0MsMENBQUk7SUFDdEMsd0JBQVksUUFBMkIsRUFBRSxlQUErQixFQUFVLFVBQTZCO1FBQS9HLFlBQ0Usa0JBQU0sUUFBUSxFQUFFLGVBQWUsQ0FBQyxTQUNqQztRQUZpRixnQkFBVSxHQUFWLFVBQVUsQ0FBbUI7O0lBRS9HLENBQUM7Ozs7OztJQUVELGdDQUFPOzs7OztJQUFQLFVBQVEsR0FBcUIsRUFBRSxPQUFzQztRQUFyRSxpQkE0QkM7O1lBM0JLLE9BQU8sR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU87UUFDeEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBVSxHQUFHLEVBQUEsQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUM5QyxPQUFPLEdBQUcsQ0FBQyxtQkFBVSxHQUFHLEVBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUNuQztRQUVELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUM5QyxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFbkMsT0FBTyxpQkFBTSxPQUFPLFlBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDOztZQUVLLFNBQVMsR0FBRyxpQkFBTSxPQUFPLFlBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztRQUM3QyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBQ2hELE9BQU8sU0FBUyxDQUFDO1NBQ2xCOztZQUVHLE9BQU8sR0FBRyxLQUFLOztZQUNiLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3RCxTQUFTLENBQUMsU0FBUyxHQUFHO1lBQUMsY0FBTztpQkFBUCxVQUFPLEVBQVAscUJBQU8sRUFBUCxJQUFPO2dCQUFQLHlCQUFPOztZQUM1QixLQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixPQUFPLGlCQUFpQixnQ0FBSSxJQUFJLEdBQUU7UUFDcEMsQ0FBQyxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUNuQixRQUFRLENBQUMsY0FBTSxPQUFBLE9BQU8sSUFBSSxLQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFyQyxDQUFxQyxDQUFDLENBQ3RELENBQUM7SUFDSixDQUFDOztnQkFsQ0YsVUFBVTs7OztnQkFSRixpQkFBaUI7Z0JBQWlCLGNBQWM7Z0JBRmhELGlCQUFpQjs7SUE2QzFCLHFCQUFDO0NBQUEsQUFuQ0QsQ0FDb0MsSUFBSSxHQWtDdkM7U0FsQ1ksY0FBYzs7Ozs7O0lBQ2lELG9DQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRpbmdCYXJTZXJ2aWNlIH0gZnJvbSAnQG5neC1sb2FkaW5nLWJhci9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3Rpb25CYWNrZW5kLCBIdHRwLCBSZXF1ZXN0LCBSZXF1ZXN0T3B0aW9ucywgUmVxdWVzdE9wdGlvbnNBcmdzLCBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0JhclJlcXVlc3RPcHRpb25zQXJncyBleHRlbmRzIFJlcXVlc3RPcHRpb25zQXJncyB7XG4gIGlnbm9yZUxvYWRpbmdCYXI/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9hZGluZ0Jhckh0dHAgZXh0ZW5kcyBIdHRwIHtcbiAgY29uc3RydWN0b3IoX2JhY2tlbmQ6IENvbm5lY3Rpb25CYWNrZW5kLCBfZGVmYXVsdE9wdGlvbnM6IFJlcXVlc3RPcHRpb25zLCBwcml2YXRlIGxvYWRpbmdCYXI6IExvYWRpbmdCYXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoX2JhY2tlbmQsIF9kZWZhdWx0T3B0aW9ucyk7XG4gIH1cblxuICByZXF1ZXN0KHVybDogc3RyaW5nIHwgUmVxdWVzdCwgb3B0aW9ucz86IExvYWRpbmdCYXJSZXF1ZXN0T3B0aW9uc0FyZ3MpOiBPYnNlcnZhYmxlPFJlc3BvbnNlPiB7XG4gICAgbGV0IGhlYWRlcnMgPSBvcHRpb25zICYmIG9wdGlvbnMuaGVhZGVycztcbiAgICBpZiAoIWhlYWRlcnMgJiYgdXJsICYmICg8UmVxdWVzdD4gdXJsKS5oZWFkZXJzKSB7XG4gICAgICBoZWFkZXJzID0gKDxSZXF1ZXN0PiB1cmwpLmhlYWRlcnM7XG4gICAgfVxuXG4gICAgaWYgKGhlYWRlcnMgJiYgaGVhZGVycy5oYXMoJ2lnbm9yZUxvYWRpbmdCYXInKSkge1xuICAgICAgaGVhZGVycy5kZWxldGUoJ2lnbm9yZUxvYWRpbmdCYXInKTtcblxuICAgICAgcmV0dXJuIHN1cGVyLnJlcXVlc3QodXJsLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSQgPSBzdXBlci5yZXF1ZXN0KHVybCwgb3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5pZ25vcmVMb2FkaW5nQmFyID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UkO1xuICAgIH1cblxuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgY29uc3QgcmVzcG9uc2VTdWJzY3JpYmUgPSByZXNwb25zZSQuc3Vic2NyaWJlLmJpbmQocmVzcG9uc2UkKTtcbiAgICByZXNwb25zZSQuc3Vic2NyaWJlID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZ0Jhci5zdGFydCgpO1xuICAgICAgc3RhcnRlZCA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzcG9uc2VTdWJzY3JpYmUoLi4uYXJncyk7XG4gICAgfTtcblxuICAgIHJldHVybiByZXNwb25zZSQucGlwZShcbiAgICAgIGZpbmFsaXplKCgpID0+IHN0YXJ0ZWQgJiYgdGhpcy5sb2FkaW5nQmFyLmNvbXBsZXRlKCkpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==