ngx-spinner.service.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /**
  2. * @fileoverview added by tsickle
  3. * Generated from: lib/ngx-spinner.service.ts
  4. * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  5. */
  6. import { Injectable } from '@angular/core';
  7. import { ReplaySubject } from 'rxjs';
  8. import { filter } from 'rxjs/operators';
  9. import { NgxSpinner, PRIMARY_SPINNER } from './ngx-spinner.enum';
  10. import * as i0 from "@angular/core";
  11. export class NgxSpinnerService {
  12. /**
  13. * Creates an instance of NgxSpinnerService.
  14. * \@memberof NgxSpinnerService
  15. */
  16. constructor() {
  17. /**
  18. * Spinner observable
  19. *
  20. * \@memberof NgxSpinnerService
  21. */
  22. this.spinnerObservable = new ReplaySubject(1);
  23. }
  24. /**
  25. * Get subscription of desired spinner
  26. * \@memberof NgxSpinnerService
  27. *
  28. * @param {?} name
  29. * @return {?}
  30. */
  31. getSpinner(name) {
  32. return this.spinnerObservable.asObservable().pipe(filter((/**
  33. * @param {?} x
  34. * @return {?}
  35. */
  36. (x) => x && x.name === name)));
  37. }
  38. /**
  39. * To show spinner
  40. *
  41. * \@memberof NgxSpinnerService
  42. * @param {?=} name
  43. * @param {?=} spinner
  44. * @return {?}
  45. */
  46. show(name = PRIMARY_SPINNER, spinner) {
  47. /** @type {?} */
  48. const showPromise = new Promise((/**
  49. * @param {?} resolve
  50. * @param {?} _reject
  51. * @return {?}
  52. */
  53. (resolve, _reject) => {
  54. if (spinner && Object.keys(spinner).length) {
  55. spinner['name'] = name;
  56. this.spinnerObservable.next(new NgxSpinner(Object.assign({}, spinner, { show: true })));
  57. resolve(true);
  58. }
  59. else {
  60. this.spinnerObservable.next(new NgxSpinner({ name, show: true }));
  61. resolve(true);
  62. }
  63. }));
  64. return showPromise;
  65. }
  66. /**
  67. * To hide spinner
  68. *
  69. * \@memberof NgxSpinnerService
  70. * @param {?=} name
  71. * @param {?=} debounce
  72. * @return {?}
  73. */
  74. hide(name = PRIMARY_SPINNER, debounce = 0) {
  75. /** @type {?} */
  76. const hidePromise = new Promise((/**
  77. * @param {?} resolve
  78. * @param {?} _reject
  79. * @return {?}
  80. */
  81. (resolve, _reject) => {
  82. setTimeout((/**
  83. * @return {?}
  84. */
  85. () => {
  86. this.spinnerObservable.next(new NgxSpinner({ name, show: false }));
  87. resolve(true);
  88. }), debounce);
  89. }));
  90. return hidePromise;
  91. }
  92. }
  93. NgxSpinnerService.decorators = [
  94. { type: Injectable, args: [{
  95. providedIn: 'root'
  96. },] }
  97. ];
  98. /** @nocollapse */
  99. NgxSpinnerService.ctorParameters = () => [];
  100. /** @nocollapse */ NgxSpinnerService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NgxSpinnerService_Factory() { return new NgxSpinnerService(); }, token: NgxSpinnerService, providedIn: "root" });
  101. if (false) {
  102. /**
  103. * Spinner observable
  104. *
  105. * \@memberof NgxSpinnerService
  106. * @type {?}
  107. * @private
  108. */
  109. NgxSpinnerService.prototype.spinnerObservable;
  110. }
  111. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNwaW5uZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zcGlubmVyLyIsInNvdXJjZXMiOlsibGliL25neC1zcGlubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFXLE1BQU0sb0JBQW9CLENBQUM7O0FBSzFFLE1BQU0sT0FBTyxpQkFBaUI7Ozs7O0lBVzVCOzs7Ozs7UUFMUSxzQkFBaUIsR0FBRyxJQUFJLGFBQWEsQ0FBYSxDQUFDLENBQUMsQ0FBQztJQUs3QyxDQUFDOzs7Ozs7OztJQUtqQixVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTTs7OztRQUFDLENBQUMsQ0FBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7Ozs7Ozs7OztJQU1ELElBQUksQ0FBQyxPQUFlLGVBQWUsRUFBRSxPQUFpQjs7Y0FDOUMsV0FBVyxHQUFHLElBQUksT0FBTzs7Ozs7UUFBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNuRCxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDMUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsbUJBQU0sT0FBTyxJQUFFLElBQUksRUFBRSxJQUFJLElBQUcsQ0FBQyxDQUFDO2dCQUN4RSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNmO1FBQ0gsQ0FBQyxFQUFDO1FBQ0YsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7Ozs7Ozs7O0lBTUQsSUFBSSxDQUFDLE9BQWUsZUFBZSxFQUFFLFdBQW1CLENBQUM7O2NBQ2pELFdBQVcsR0FBRyxJQUFJLE9BQU87Ozs7O1FBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbkQsVUFBVTs7O1lBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLENBQUMsR0FBRSxRQUFRLENBQUMsQ0FBQztRQUNmLENBQUMsRUFBQztRQUNGLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OztZQXJERixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7Ozs7Ozs7Ozs7SUFPQyw4Q0FBNkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOZ3hTcGlubmVyLCBQUklNQVJZX1NQSU5ORVIsIFNwaW5uZXIgfSBmcm9tICcuL25neC1zcGlubmVyLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hTcGlubmVyU2VydmljZSB7XG4gIC8qKlxuICAgKiBTcGlubmVyIG9ic2VydmFibGVcbiAgICpcbiAgICogQG1lbWJlcm9mIE5neFNwaW5uZXJTZXJ2aWNlXG4gICAqL1xuICBwcml2YXRlIHNwaW5uZXJPYnNlcnZhYmxlID0gbmV3IFJlcGxheVN1YmplY3Q8Tmd4U3Bpbm5lcj4oMSk7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIE5neFNwaW5uZXJTZXJ2aWNlLlxuICAgKiBAbWVtYmVyb2YgTmd4U3Bpbm5lclNlcnZpY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG4gIC8qKlxuICAqIEdldCBzdWJzY3JpcHRpb24gb2YgZGVzaXJlZCBzcGlubmVyXG4gICogQG1lbWJlcm9mIE5neFNwaW5uZXJTZXJ2aWNlXG4gICoqL1xuICBnZXRTcGlubmVyKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Tmd4U3Bpbm5lcj4ge1xuICAgIHJldHVybiB0aGlzLnNwaW5uZXJPYnNlcnZhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKCh4OiBOZ3hTcGlubmVyKSA9PiB4ICYmIHgubmFtZSA9PT0gbmFtZSkpO1xuICB9XG4gIC8qKlxuICAgKiBUbyBzaG93IHNwaW5uZXJcbiAgICpcbiAgICogQG1lbWJlcm9mIE5neFNwaW5uZXJTZXJ2aWNlXG4gICAqL1xuICBzaG93KG5hbWU6IHN0cmluZyA9IFBSSU1BUllfU1BJTk5FUiwgc3Bpbm5lcj86IFNwaW5uZXIpIHtcbiAgICBjb25zdCBzaG93UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoc3Bpbm5lciAmJiBPYmplY3Qua2V5cyhzcGlubmVyKS5sZW5ndGgpIHtcbiAgICAgICAgc3Bpbm5lclsnbmFtZSddID0gbmFtZTtcbiAgICAgICAgdGhpcy5zcGlubmVyT2JzZXJ2YWJsZS5uZXh0KG5ldyBOZ3hTcGlubmVyKHsgLi4uc3Bpbm5lciwgc2hvdzogdHJ1ZSB9KSk7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNwaW5uZXJPYnNlcnZhYmxlLm5leHQobmV3IE5neFNwaW5uZXIoeyBuYW1lLCBzaG93OiB0cnVlIH0pKTtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc2hvd1Byb21pc2U7XG4gIH1cbiAgLyoqXG4gICogVG8gaGlkZSBzcGlubmVyXG4gICpcbiAgKiBAbWVtYmVyb2YgTmd4U3Bpbm5lclNlcnZpY2VcbiAgKi9cbiAgaGlkZShuYW1lOiBzdHJpbmcgPSBQUklNQVJZX1NQSU5ORVIsIGRlYm91bmNlOiBudW1iZXIgPSAwKSB7XG4gICAgY29uc3QgaGlkZVByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3Bpbm5lck9ic2VydmFibGUubmV4dChuZXcgTmd4U3Bpbm5lcih7IG5hbWUsIHNob3c6IGZhbHNlIH0pKTtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0sIGRlYm91bmNlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaGlkZVByb21pc2U7XG4gIH1cbn1cbiJdfQ==