UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

125 lines 7.36 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ import { Injectable, Inject } from '@angular/core'; import { NB_DOCUMENT } from '../theme.options'; /* * Service to control the global page spinner. */ export class NbSpinnerService { /** * @param {?} document */ constructor(document) { this.document = document; this.loaders = []; this.selector = 'nb-global-spinner'; } /* * Appends new loader to the list of loader to be completed before * spinner will be hidden * @param method Promise<any> */ /** * @param {?} method * @return {?} */ registerLoader(method) { this.loaders.push(method); } /* * Clears the list of loader */ /** * @return {?} */ clear() { this.loaders = []; } /* * Start the loader process, show spinnder and execute loaders */ /** * @return {?} */ load() { this.showSpinner(); this.executeAll(); } /** * @private * @param {?=} done * @return {?} */ executeAll(done = () => { }) { Promise.all(this.loaders).then((values) => { this.hideSpinner(); done.call(null, values); }) .catch((error) => { // TODO: Promise.reject console.error(error); }); } // TODO is there any better way of doing this? /** * @private * @return {?} */ showSpinner() { /** @type {?} */ const el = this.getSpinnerElement(); if (el) { el.style['display'] = 'block'; } } /** * @private * @return {?} */ hideSpinner() { /** @type {?} */ const el = this.getSpinnerElement(); if (el) { el.style['display'] = 'none'; } } /** * @private * @return {?} */ getSpinnerElement() { return this.document.getElementById(this.selector); } } NbSpinnerService.decorators = [ { type: Injectable } ]; /** @nocollapse */ NbSpinnerService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [NB_DOCUMENT,] }] } ]; if (false) { /** * @type {?} * @private */ NbSpinnerService.prototype.loaders; /** * @type {?} * @private */ NbSpinnerService.prototype.selector; /** * @type {?} * @private */ NbSpinnerService.prototype.document; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3NwaW5uZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFNL0MsTUFBTSxPQUFPLGdCQUFnQjs7OztJQUszQixZQUF5QyxRQUFRO1FBQVIsYUFBUSxHQUFSLFFBQVEsQ0FBQTtRQUh6QyxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQVcsbUJBQW1CLENBQUM7SUFFSyxDQUFDOzs7Ozs7Ozs7O0lBT3JELGNBQWMsQ0FBQyxNQUFvQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7Ozs7O0lBS0QsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7Ozs7SUFLRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7Ozs7SUFFTyxVQUFVLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUM7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQzthQUNDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsdUJBQXVCO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7Ozs7SUFHTyxXQUFXOztjQUNYLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDbkMsSUFBSSxFQUFFLEVBQUU7WUFDTixFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUMvQjtJQUNILENBQUM7Ozs7O0lBRU8sV0FBVzs7Y0FDWCxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1FBQ25DLElBQUksRUFBRSxFQUFFO1lBQ04sRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDOUI7SUFDSCxDQUFDOzs7OztJQUVPLGlCQUFpQjtRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7WUE1REYsVUFBVTs7Ozs0Q0FNSSxNQUFNLFNBQUMsV0FBVzs7Ozs7OztJQUgvQixtQ0FBcUM7Ozs7O0lBQ3JDLG9DQUErQzs7Ozs7SUFFbkMsb0NBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxyXG4gKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5CX0RPQ1VNRU5UIH0gZnJvbSAnLi4vdGhlbWUub3B0aW9ucyc7XHJcblxyXG4vKlxyXG4gKiBTZXJ2aWNlIHRvIGNvbnRyb2wgdGhlIGdsb2JhbCBwYWdlIHNwaW5uZXIuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOYlNwaW5uZXJTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBsb2FkZXJzOiBQcm9taXNlPGFueT5bXSA9IFtdO1xyXG4gIHByaXZhdGUgc2VsZWN0b3I6IHN0cmluZyA9ICduYi1nbG9iYWwtc3Bpbm5lcic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkJfRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQpIHt9XHJcblxyXG4gIC8qXHJcbiAgICogQXBwZW5kcyBuZXcgbG9hZGVyIHRvIHRoZSBsaXN0IG9mIGxvYWRlciB0byBiZSBjb21wbGV0ZWQgYmVmb3JlXHJcbiAgICogc3Bpbm5lciB3aWxsIGJlIGhpZGRlblxyXG4gICAqIEBwYXJhbSBtZXRob2QgUHJvbWlzZTxhbnk+XHJcbiAgICovXHJcbiAgcmVnaXN0ZXJMb2FkZXIobWV0aG9kOiBQcm9taXNlPGFueT4pOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGVycy5wdXNoKG1ldGhvZCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIENsZWFycyB0aGUgbGlzdCBvZiBsb2FkZXJcclxuICAgKi9cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGVycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBTdGFydCB0aGUgbG9hZGVyIHByb2Nlc3MsIHNob3cgc3Bpbm5kZXIgYW5kIGV4ZWN1dGUgbG9hZGVyc1xyXG4gICAqL1xyXG4gIGxvYWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTcGlubmVyKCk7XHJcbiAgICB0aGlzLmV4ZWN1dGVBbGwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhlY3V0ZUFsbChkb25lID0gKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIFByb21pc2UuYWxsKHRoaXMubG9hZGVycykudGhlbigodmFsdWVzKSA9PiB7XHJcbiAgICAgIHRoaXMuaGlkZVNwaW5uZXIoKTtcclxuICAgICAgZG9uZS5jYWxsKG51bGwsIHZhbHVlcyk7XHJcbiAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgLy8gVE9ETzogUHJvbWlzZS5yZWplY3RcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPIGlzIHRoZXJlIGFueSBiZXR0ZXIgd2F5IG9mIGRvaW5nIHRoaXM/XHJcbiAgcHJpdmF0ZSBzaG93U3Bpbm5lcigpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5nZXRTcGlubmVyRWxlbWVudCgpO1xyXG4gICAgaWYgKGVsKSB7XHJcbiAgICAgIGVsLnN0eWxlWydkaXNwbGF5J10gPSAnYmxvY2snO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlU3Bpbm5lcigpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5nZXRTcGlubmVyRWxlbWVudCgpO1xyXG4gICAgaWYgKGVsKSB7XHJcbiAgICAgIGVsLnN0eWxlWydkaXNwbGF5J10gPSAnbm9uZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNwaW5uZXJFbGVtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zZWxlY3Rvcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==