@rxap/services
Version:
Provides Angular services for common tasks such as loading images, managing loading indicators, resetting data, and managing components in a window container sidenav. It also includes a service to generate avatar images. This package offers reusable servi
1 lines • 9.47 kB
Source Map (JSON)
{"version":3,"file":"rxap-services.mjs","sources":["../../../../../packages/angular/services/src/lib/avatar-image.service.ts","../../../../../packages/angular/services/src/lib/image-loader.service.ts","../../../../../packages/angular/services/src/lib/loading-indicator.service.ts","../../../../../packages/angular/services/src/lib/reset.service.ts","../../../../../packages/angular/services/src/lib/window-container-sidenav.service.ts","../../../../../packages/angular/services/src/index.ts","../../../../../packages/angular/services/src/rxap-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpParams, HttpRequest } from '@angular/common/http';\n\n@Injectable({ providedIn: 'root' })\nexport class AvatarImageService {\n\n public get({ name }: { name: string }): string {\n return new HttpRequest(\n 'GET',\n 'https://eu.ui-avatars.com/api',\n {\n params: new HttpParams({ fromObject: { name } }),\n },\n ).urlWithParams;\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ImageLoaderService {\n\n private readonly loading = new Map<string, Promise<void>>();\n private readonly loaded = new Map<string, true>();\n\n public load(imageSrc: string): Promise<void> {\n\n if (this.loaded.has(imageSrc)) {\n return Promise.resolve();\n }\n\n if (this.loading.has(imageSrc)) {\n return this.loading.get(imageSrc)!;\n }\n\n const loading = new Promise<void>((resolve, reject) => {\n const image = new Image();\n image.src = imageSrc;\n\n image.onerror = reject;\n image.onload = () => resolve();\n }).then(() => {\n this.loaded.set(imageSrc, true);\n }).finally(() => {\n this.loading.delete(imageSrc);\n });\n\n this.loading.set(imageSrc, loading);\n\n return loading;\n }\n\n}\n","import {\n Injectable,\n OnDestroy,\n} from '@angular/core';\nimport {\n Observable,\n Subscription,\n} from 'rxjs';\nimport {\n delay,\n map,\n} from 'rxjs/operators';\nimport { ToggleSubject } from '@rxap/rxjs';\n\n@Injectable()\nexport class LoadingIndicatorService implements OnDestroy {\n\n public isLoading$: Observable<boolean>;\n private readonly loading$ = new ToggleSubject(true);\n private readonly _attachedLoadingSubscription = new Subscription();\n\n constructor() {\n this.isLoading$ = this.loading$.asObservable();\n }\n\n public attachLoading(loading$: Observable<any>) {\n this._attachedLoadingSubscription.add(\n loading$.pipe(map(Boolean), delay(0)).subscribe(this.loading$.next),\n );\n }\n\n public ngOnDestroy() {\n this._attachedLoadingSubscription.unsubscribe();\n }\n\n public disable() {\n setTimeout(() => {\n this.loading$.disable();\n });\n }\n\n public enable() {\n setTimeout(() => {\n this.loading$.enable();\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ResetService {\n\n public view$ = new Subject<void>();\n public dataSource$ = new Subject<void>();\n\n public resetView() {\n this.view$.next();\n }\n\n public resetDataSource() {\n // TODO : iterate over the list of active DataSources\n this.dataSource$.next();\n }\n\n public resetAll() {\n this.resetDataSource();\n this.resetView();\n }\n\n}\n","import {\n ComponentFactoryResolver,\n Injectable,\n Injector,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Constructor } from '@rxap/utilities';\n\nexport interface ContainerComponent {\n id: string;\n component: Constructor;\n viewContainerRef?: ViewContainerRef | null;\n injector?: Injector | null;\n componentFactoryResolver?: ComponentFactoryResolver | null;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class WindowContainerSidenavService {\n\n public add$ = new Subject<ContainerComponent>();\n public remove$ = new Subject<ContainerComponent>();\n private components = new Map<string, ContainerComponent>();\n\n public add(component: ContainerComponent): void {\n if (this.components.has(component.id)) {\n this.remove$.next(component);\n }\n this.components.set(component.id, component);\n this.add$.next(component);\n }\n\n public remove(componentOrId: ContainerComponent | string): void {\n const id = typeof componentOrId === 'string' ? componentOrId : componentOrId.id;\n if (this.components.has(id)) {\n this.remove$.next(this.components.get(id)!);\n this.components.delete(id);\n }\n }\n\n public getAll(): ContainerComponent[] {\n return Array.from(this.components.values());\n }\n\n\n}\n","// region \nexport * from './lib/avatar-image.service';\nexport * from './lib/image-loader.service';\nexport * from './lib/loading-indicator.service';\nexport * from './lib/reset.service';\nexport * from './lib/window-container-sidenav.service';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}