@ngx-loading-bar/http
Version:
Automatic page loading / progress bar for Angular
117 lines (111 loc) • 4.02 kB
JavaScript
import { __extends, __spread } from 'tslib';
import { LoadingBarService, LoadingBarModule } from '@ngx-loading-bar/core';
import { Injectable, NgModule } from '@angular/core';
import { ConnectionBackend, Http, RequestOptions, HttpModule, XHRBackend } from '@angular/http';
import { finalize } from 'rxjs/operators';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var LoadingBarHttp = /** @class */ (function (_super) {
__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, __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));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} xhrBackend
* @param {?} requestOptions
* @param {?} loadingBarService
* @return {?}
*/
function httpFactory(xhrBackend, requestOptions, loadingBarService) {
return new LoadingBarHttp(xhrBackend, requestOptions, loadingBarService);
}
var LoadingBarHttpModule = /** @class */ (function () {
function LoadingBarHttpModule() {
}
LoadingBarHttpModule.decorators = [
{ type: NgModule, args: [{
imports: [
HttpModule,
LoadingBarModule,
],
exports: [
HttpModule,
LoadingBarModule,
],
providers: [
{ provide: Http, useFactory: httpFactory, deps: [XHRBackend, RequestOptions, LoadingBarService] },
],
},] }
];
return LoadingBarHttpModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { LoadingBarHttpModule, LoadingBarHttp, httpFactory as ɵa };
//# sourceMappingURL=ngx-loading-bar-http.js.map