UNPKG

kwikui

Version:

KwikID's UI Component Library in Angular

55 lines 7.49 kB
import { Injectable } from "@angular/core"; import { BehaviorSubject } from "rxjs"; import { throwErrorMessage } from "../../../helpers/kwikui.common.helpers"; import { DEFAULT_VALUES, VALIDATE_KEY_VALUES } from "./loader.constants"; import { isValidKeyValue } from "./loader.validation"; import * as i0 from "@angular/core"; export class KwikUILoaderService { constructor() { // Create a Subject to track loader visibility changes this.showLoaderSubject = new BehaviorSubject(false); // Expose an observable to subscribe to loader visibility changes this.showLoader = this.showLoaderSubject.asObservable(); this.loading = false; this.fullscreen = DEFAULT_VALUES.fullscreen; this.id = DEFAULT_VALUES.id; this.loaderText = DEFAULT_VALUES.loaderText; for (const inputs of Object.entries(VALIDATE_KEY_VALUES)) { const key = inputs[0]; const validate = inputs[1]; if (validate) { this.validateInputProperty(key, this[key]); } } } validateInputProperty(key, value) { if (VALIDATE_KEY_VALUES[key] && !isValidKeyValue(key, value)) { this[key] = DEFAULT_VALUES[key]; throwErrorMessage("kwikui-loader", this.id, key, value, DEFAULT_VALUES[key]); } } show(options) { var _a; this.showLoaderSubject.next(true); this.loading = true; if (options) { this.loaderText = options.loaderText || this.loaderText; this.fullscreen = (_a = options.fullscreen) !== null && _a !== void 0 ? _a : this.fullscreen; } return this.loading; } hide() { this.loading = false; this.showLoaderSubject.next(false); return this.loading; } } /** @nocollapse */ KwikUILoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikUILoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ KwikUILoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikUILoaderService, providedIn: "root" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikUILoaderService, decorators: [{ type: Injectable, args: [{ providedIn: "root" }] }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lrdWkvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbG9hZGVyL2xvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUt0RCxNQUFNLE9BQU8sbUJBQW1CO0lBZTlCO1FBZEEsc0RBQXNEO1FBQ3RELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXhELGlFQUFpRTtRQUNqRSxlQUFVLEdBQW9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwRSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGVBQVUsR0FBWSxjQUFjLENBQUMsVUFBVSxDQUFDO1FBRWhELE9BQUUsR0FBVyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBRS9CLGVBQVUsR0FBVyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBRzdDLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ3hELE1BQU0sR0FBRyxHQUFXLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBUSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFaEMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1QztTQUNGO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ25ELElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsaUJBQWlCLENBQ2YsZUFBZSxFQUNmLElBQUksQ0FBQyxFQUFFLEVBQ1AsR0FBRyxFQUNILEtBQUssRUFDTCxjQUFjLENBQUMsR0FBRyxDQUFDLENBQ3BCLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsT0FBdUQ7O1FBQzFELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsT0FBTyxDQUFDLFVBQVUsbUNBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6RDtRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7O29JQXhEVSxtQkFBbUI7d0lBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0aHJvd0Vycm9yTWVzc2FnZSB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL2t3aWt1aS5jb21tb24uaGVscGVyc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9WQUxVRVMsIFZBTElEQVRFX0tFWV9WQUxVRVMgfSBmcm9tIFwiLi9sb2FkZXIuY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBpc1ZhbGlkS2V5VmFsdWUgfSBmcm9tIFwiLi9sb2FkZXIudmFsaWRhdGlvblwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtVSUxvYWRlclNlcnZpY2Uge1xuICAvLyBDcmVhdGUgYSBTdWJqZWN0IHRvIHRyYWNrIGxvYWRlciB2aXNpYmlsaXR5IGNoYW5nZXNcbiAgc2hvd0xvYWRlclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyBFeHBvc2UgYW4gb2JzZXJ2YWJsZSB0byBzdWJzY3JpYmUgdG8gbG9hZGVyIHZpc2liaWxpdHkgY2hhbmdlc1xuICBzaG93TG9hZGVyOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnNob3dMb2FkZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBmdWxsc2NyZWVuOiBib29sZWFuID0gREVGQVVMVF9WQUxVRVMuZnVsbHNjcmVlbjtcblxuICBpZDogc3RyaW5nID0gREVGQVVMVF9WQUxVRVMuaWQ7XG5cbiAgbG9hZGVyVGV4dDogc3RyaW5nID0gREVGQVVMVF9WQUxVRVMubG9hZGVyVGV4dDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBmb3IgKGNvbnN0IGlucHV0cyBvZiBPYmplY3QuZW50cmllcyhWQUxJREFURV9LRVlfVkFMVUVTKSkge1xuICAgICAgY29uc3Qga2V5OiBzdHJpbmcgPSBpbnB1dHNbMF07XG4gICAgICBjb25zdCB2YWxpZGF0ZTogYW55ID0gaW5wdXRzWzFdO1xuXG4gICAgICBpZiAodmFsaWRhdGUpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUlucHV0UHJvcGVydHkoa2V5LCB0aGlzW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVJbnB1dFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKFZBTElEQVRFX0tFWV9WQUxVRVNba2V5XSAmJiAhaXNWYWxpZEtleVZhbHVlKGtleSwgdmFsdWUpKSB7XG4gICAgICB0aGlzW2tleV0gPSBERUZBVUxUX1ZBTFVFU1trZXldO1xuICAgICAgdGhyb3dFcnJvck1lc3NhZ2UoXG4gICAgICAgIFwia3dpa3VpLWxvYWRlclwiLFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBERUZBVUxUX1ZBTFVFU1trZXldXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNob3cob3B0aW9ucz86IHsgbG9hZGVyVGV4dD86IHN0cmluZzsgZnVsbHNjcmVlbj86IGJvb2xlYW4gfSk6IGJvb2xlYW4ge1xuICAgIHRoaXMuc2hvd0xvYWRlclN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMubG9hZGVyVGV4dCA9IG9wdGlvbnMubG9hZGVyVGV4dCB8fCB0aGlzLmxvYWRlclRleHQ7XG4gICAgICB0aGlzLmZ1bGxzY3JlZW4gPSBvcHRpb25zLmZ1bGxzY3JlZW4gPz8gdGhpcy5mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxvYWRpbmc7XG4gIH1cblxuICBoaWRlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0xvYWRlclN1YmplY3QubmV4dChmYWxzZSk7XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nO1xuICB9XG59XG4iXX0=