@ohayojp.com/components
Version:
Common business components of ohayojp.
151 lines • 10.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: loading.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Overlay } from '@angular/cdk/overlay';
import { ComponentPortal } from '@angular/cdk/portal';
import { Injectable } from '@angular/core';
import { OhayoConfigService } from '@ohayojp.com/util';
import { Subject, timer } from 'rxjs';
import { debounce } from 'rxjs/operators';
import { LoadingDefaultComponent } from './loading.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/cdk/overlay";
import * as i2 from "@ohayojp.com/util";
export class LoadingService {
/**
* @param {?} overlay
* @param {?} configSrv
*/
constructor(overlay, configSrv) {
this.overlay = overlay;
this.compRef = null;
this.opt = null;
this.n$ = new Subject();
this.cog = (/** @type {?} */ (configSrv.merge('loading', {
type: 'spin',
text: '加载中...',
icon: {
type: 'loading',
theme: 'outline',
spin: true,
},
delay: 0,
})));
this.loading$ = this.n$
.asObservable()
.pipe(debounce((/**
* @return {?}
*/
() => timer((/** @type {?} */ (this.opt)).delay))))
.subscribe((/**
* @return {?}
*/
() => this.create()));
}
/**
* @return {?}
*/
get instance() {
return this.compRef != null ? this.compRef.instance : null;
}
/**
* @private
* @return {?}
*/
create() {
if (this.opt == null)
return;
this._close(false);
this._overlayRef = this.overlay.create({
positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),
scrollStrategy: this.overlay.scrollStrategies.block(),
hasBackdrop: true,
backdropClass: 'loading-backdrop',
});
this.compRef = this._overlayRef.attach(new ComponentPortal(LoadingDefaultComponent));
Object.assign(this.instance, { options: this.opt });
this.compRef.changeDetectorRef.markForCheck();
}
/**
* @param {?=} options
* @return {?}
*/
open(options) {
this.opt = Object.assign(Object.assign({}, this.cog), options);
this.n$.next();
}
/**
* @private
* @param {?} cleanOpt
* @return {?}
*/
_close(cleanOpt) {
if (cleanOpt)
this.opt = null;
if (!this._overlayRef)
return;
this._overlayRef.detach();
this.compRef = null;
}
/**
* @return {?}
*/
close() {
this._close(true);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.loading$.unsubscribe();
}
}
LoadingService.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] }
];
/** @nocollapse */
LoadingService.ctorParameters = () => [
{ type: Overlay },
{ type: OhayoConfigService }
];
/** @nocollapse */ LoadingService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoadingService_Factory() { return new LoadingService(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i2.OhayoConfigService)); }, token: LoadingService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
LoadingService.prototype._overlayRef;
/**
* @type {?}
* @private
*/
LoadingService.prototype.compRef;
/**
* @type {?}
* @private
*/
LoadingService.prototype.opt;
/**
* @type {?}
* @private
*/
LoadingService.prototype.cog;
/**
* @type {?}
* @private
*/
LoadingService.prototype.n$;
/**
* @type {?}
* @private
*/
LoadingService.prototype.loading$;
/**
* @type {?}
* @private
*/
LoadingService.prototype.overlay;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L2FuZHJvaWQvQG9oYXlvanAvcGFja2FnZXMvY29tcG9uZW50cy9sb2FkaW5nLyIsInNvdXJjZXMiOlsibG9hZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWdCLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQXNCLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFJOUQsTUFBTSxPQUFPLGNBQWM7Ozs7O0lBWXpCLFlBQW9CLE9BQWdCLEVBQUUsU0FBNkI7UUFBL0MsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQVY1QixZQUFPLEdBQWlELElBQUksQ0FBQztRQUM3RCxRQUFHLEdBQThCLElBQUksQ0FBQztRQUV0QyxPQUFFLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVF6QixJQUFJLENBQUMsR0FBRyxHQUFHLG1CQUFBLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3BDLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLFFBQVE7WUFDZCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksRUFBRSxJQUFJO2FBQ1g7WUFDRCxLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsRUFBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRTthQUNwQixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsUUFBUTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFBLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDO2FBQzVDLFNBQVM7OztRQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7SUFuQkQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3RCxDQUFDOzs7OztJQW1CTyxNQUFNO1FBQ1osSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUk7WUFBRSxPQUFPO1FBRTdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNyQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUYsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxrQkFBa0I7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7UUFDckYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQzs7Ozs7SUFFRCxJQUFJLENBQUMsT0FBNEI7UUFDL0IsSUFBSSxDQUFDLEdBQUcsbUNBQVEsSUFBSSxDQUFDLEdBQUcsR0FBSyxPQUFPLENBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozs7OztJQUVPLE1BQU0sQ0FBQyxRQUFpQjtRQUM5QixJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQzs7OztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOzs7WUFoRUYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztZQVR6QixPQUFPO1lBR1Asa0JBQWtCOzs7Ozs7OztJQVF6QixxQ0FBZ0M7Ozs7O0lBQ2hDLGlDQUFxRTs7Ozs7SUFDckUsNkJBQThDOzs7OztJQUM5Qyw2QkFBZ0M7Ozs7O0lBQ2hDLDRCQUEyQjs7Ozs7SUFDM0Isa0NBQStCOzs7OztJQU1uQixpQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2hheW9Db25maWdTZXJ2aWNlLCBPaGF5b0xvYWRpbmdDb25maWcgfSBmcm9tICdAb2hheW8vdXRpbCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvYWRpbmdEZWZhdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nU2hvd09wdGlvbnMgfSBmcm9tICcuL2xvYWRpbmcudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBjb21wUmVmOiBDb21wb25lbnRSZWY8TG9hZGluZ0RlZmF1bHRDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgb3B0OiBMb2FkaW5nU2hvd09wdGlvbnMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb2c6IE9oYXlvTG9hZGluZ0NvbmZpZztcbiAgcHJpdmF0ZSBuJCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgbG9hZGluZyQ6IFN1YnNjcmlwdGlvbjtcblxuICBnZXQgaW5zdGFuY2UoKTogTG9hZGluZ0RlZmF1bHRDb21wb25lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb21wUmVmICE9IG51bGwgPyB0aGlzLmNvbXBSZWYuaW5zdGFuY2UgOiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBjb25maWdTcnY6IE9oYXlvQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMuY29nID0gY29uZmlnU3J2Lm1lcmdlKCdsb2FkaW5nJywge1xuICAgICAgdHlwZTogJ3NwaW4nLFxuICAgICAgdGV4dDogJ+WKoOi9veS4rS4uLicsXG4gICAgICBpY29uOiB7XG4gICAgICAgIHR5cGU6ICdsb2FkaW5nJyxcbiAgICAgICAgdGhlbWU6ICdvdXRsaW5lJyxcbiAgICAgICAgc3BpbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBkZWxheTogMCxcbiAgICB9KSE7XG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMubiRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZGVib3VuY2UoKCkgPT4gdGltZXIodGhpcy5vcHQhLmRlbGF5KSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY3JlYXRlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0ID09IG51bGwpIHJldHVybjtcblxuICAgIHRoaXMuX2Nsb3NlKGZhbHNlKTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnbG9hZGluZy1iYWNrZHJvcCcsXG4gICAgfSk7XG4gICAgdGhpcy5jb21wUmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChMb2FkaW5nRGVmYXVsdENvbXBvbmVudCkpO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5pbnN0YW5jZSwgeyBvcHRpb25zOiB0aGlzLm9wdCB9KTtcbiAgICB0aGlzLmNvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvcGVuKG9wdGlvbnM/OiBMb2FkaW5nU2hvd09wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wdCA9IHsgLi4udGhpcy5jb2csIC4uLm9wdGlvbnMgfTtcbiAgICB0aGlzLm4kLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKGNsZWFuT3B0OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGNsZWFuT3B0KSB0aGlzLm9wdCA9IG51bGw7XG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSByZXR1cm47XG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB0aGlzLmNvbXBSZWYgPSBudWxsO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2UodHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmckLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==