kwikui
Version:
KwikID's UI Component Library in Angular
55 lines • 7.49 kB
JavaScript
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=