@patter/ngx-components 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,27 +1,27 @@
1
- export interface PtrFormFieldOption {
1
+ import { AsyncValidatorFn, ValidatorFn } from "@angular/forms";
2
+ import { Observable } from "rxjs";
3
+ export interface PtrOption {
2
4
  label: string;
3
- value: string;
5
+ value: any;
4
6
  }
5
- export interface PtrFormFieldOptionGroup {
6
- label: string;
7
- options: PtrFormFieldOption[];
7
+ export interface PtrOptionGroup {
8
+ groupLabel: string;
9
+ options: PtrOption[];
8
10
  }
9
- export interface PtrFormFieldConfig {
10
- id: string;
11
- name?: string;
12
- required?: boolean;
13
- type: 'text' | 'textarea' | 'select' | 'date' | 'hidden';
14
- simpleOptions?: PtrFormFieldOption[];
15
- groupedOptions?: PtrFormFieldOptionGroup[];
11
+ export interface PtrFormField {
12
+ type: 'text' | 'textarea' | 'number' | 'email' | 'password' | 'select' | 'date' | 'hidden';
13
+ name: string;
14
+ label: string;
15
+ value?: any;
16
+ options?: PtrOption[] | PtrOptionGroup[] | Observable<PtrOption[] | PtrOptionGroup[]>;
16
17
  size?: 'full' | 'half' | 'third';
17
- value?: string;
18
- class?: string;
19
- maxlength?: number;
18
+ placeholder?: string;
19
+ validators?: ValidatorFn[];
20
+ asyncValidators?: AsyncValidatorFn[];
20
21
  }
21
22
  export interface PtrFormConfig {
22
23
  title?: string;
23
- fields: PtrFormFieldConfig[];
24
- submitName: string;
25
- submitValue: string;
24
+ fields: PtrFormField[];
26
25
  formClass?: string;
26
+ submitText: string;
27
27
  }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class PtrLoadingSpinnerComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<PtrLoadingSpinnerComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<PtrLoadingSpinnerComponent, "ptr-loading-spinner", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,20 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class PtrLoadingSpinnerDirective implements OnDestroy {
4
+ private targetEl;
5
+ private viewContainerRef;
6
+ private renderer;
7
+ private spinnerInstance?;
8
+ private overlay?;
9
+ hostPosition: string;
10
+ set ptrLoadingSpinner(loading: boolean);
11
+ ngOnDestroy(): void;
12
+ private addProgressSpinnerComponent;
13
+ private removeProgressSpinnerComponent;
14
+ private addOverlay;
15
+ private removeOverlay;
16
+ private addBlurEffect;
17
+ private removeBlurEffect;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<PtrLoadingSpinnerDirective, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PtrLoadingSpinnerDirective, "[ptrLoadingSpinner]", never, { "ptrLoadingSpinner": { "alias": "ptrLoadingSpinner"; "required": true; }; }, {}, never, never, true, never>;
20
+ }
@@ -0,0 +1,36 @@
1
+ import { Signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Optimized Async Loading Service using Angular Signals
5
+ * Supports global loading state and named loading areas with auto-cleanup
6
+ *
7
+ * To use as a non-singleton service, add to providers array in @Component decorator:
8
+ * @Component({
9
+ * selector: 'app-example',
10
+ * templateUrl: './example.component.html',
11
+ * providers: [PtrLoadingService]
12
+ * })
13
+ *
14
+ * Usage:
15
+ * Set loading: this.loadingService.setLoading(true)
16
+ * - Set loading: this.loadingService.setLoading(true, 'areaName')
17
+ *
18
+ * - Get loading (template): {{ loadingService.isLoading()() }}
19
+ * - Get loading (template): {{ loadingService.isLoading('areaName')() }}
20
+ *
21
+ * - Get loading (component): this.loadingService.isLoading()()
22
+ * - Get loading (component): this.loadingService.isLoading('areaName')()
23
+ *
24
+ * - React to loading changes: effect(() => console.log('Loading:', this.loadingService.isLoading('areaName')()))
25
+ */
26
+ export declare class PtrLoadingService {
27
+ private globalTaskCount;
28
+ private loadingAreas;
29
+ isLoading(area?: string): Signal<boolean>;
30
+ setLoading(value: boolean, area?: string): void;
31
+ resetLoading(area?: string): void;
32
+ private updateNamedAreaLoading;
33
+ private updateTaskCount;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<PtrLoadingService, never>;
35
+ static ɵprov: i0.ɵɵInjectableDeclaration<PtrLoadingService>;
36
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patter/ngx-components",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.1.0",
6
6
  "@angular/core": "^18.1.0"
Binary file
package/public-api.d.ts CHANGED
@@ -2,3 +2,6 @@ export * from './lib/menu/menu.component';
2
2
  export * from './lib/forms/interfaces';
3
3
  export { PtrFormComponent } from './lib/forms/form/form.component';
4
4
  export { PtrTitleComponent } from './lib/ptr-title/ptr-title.component';
5
+ export { PtrLoadingSpinnerComponent } from './lib/loading-spinner/loading-spinner.component';
6
+ export { PtrLoadingSpinnerDirective } from './lib/loading-spinner/loading-spinner.directive';
7
+ export { PtrLoadingService } from './lib/services/loading.service';
Binary file