@seniorsistemas/components-ai 0.0.0-master-d4a804fe

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.
Files changed (76) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/CONTRIBUTING.md +317 -0
  3. package/README.md +161 -0
  4. package/docs/API.md +486 -0
  5. package/docs/COMPONENTS.md +272 -0
  6. package/docs/EXAMPLES.md +559 -0
  7. package/docs/MIGRATION.md +367 -0
  8. package/esm2022/lib/angular-components.module.mjs +25 -0
  9. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +121 -0
  10. package/esm2022/lib/components/bulk-delete-dialog/bulk-delete-dialog.component.mjs +176 -0
  11. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +625 -0
  12. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-date.component.mjs +86 -0
  13. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-dropdown.component.mjs +103 -0
  14. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-lookup.component.mjs +599 -0
  15. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-number.component.mjs +92 -0
  16. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-text.component.mjs +163 -0
  17. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-textarea.component.mjs +81 -0
  18. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-wrapper.component.mjs +93 -0
  19. package/esm2022/lib/components/dynamic-form/fields/index.mjs +8 -0
  20. package/esm2022/lib/components/dynamic-form/models/dynamic-form.models.mjs +2 -0
  21. package/esm2022/lib/components/export-dialog/export-dialog.component.mjs +219 -0
  22. package/esm2022/lib/config/translation.config.mjs +70 -0
  23. package/esm2022/lib/directives/cep-mask.directive.mjs +79 -0
  24. package/esm2022/lib/directives/document-mask.directive.mjs +62 -0
  25. package/esm2022/lib/directives/phone-mask.directive.mjs +59 -0
  26. package/esm2022/lib/interceptors/api.interceptor.mjs +55 -0
  27. package/esm2022/lib/models/base-entity.interface.mjs +2 -0
  28. package/esm2022/lib/models/entity-list.config.mjs +2 -0
  29. package/esm2022/lib/pipes/translate.pipe.mjs +74 -0
  30. package/esm2022/lib/services/auth.service.mjs +169 -0
  31. package/esm2022/lib/services/cookie.service.mjs +90 -0
  32. package/esm2022/lib/services/entity.service.mjs +208 -0
  33. package/esm2022/lib/services/mask.service.mjs +121 -0
  34. package/esm2022/lib/services/permission.service.mjs +180 -0
  35. package/esm2022/lib/services/senior-token.service.mjs +209 -0
  36. package/esm2022/lib/services/theme.service.mjs +85 -0
  37. package/esm2022/lib/services/translation.service.mjs +232 -0
  38. package/esm2022/public-api.mjs +90 -0
  39. package/esm2022/seniorsistemas-components-ai.mjs +5 -0
  40. package/fesm2022/seniorsistemas-components-ai.mjs +4006 -0
  41. package/fesm2022/seniorsistemas-components-ai.mjs.map +1 -0
  42. package/index.d.ts +5 -0
  43. package/lib/angular-components.module.d.ts +13 -0
  44. package/lib/components/breadcrumb/breadcrumb.component.d.ts +23 -0
  45. package/lib/components/bulk-delete-dialog/bulk-delete-dialog.component.d.ts +46 -0
  46. package/lib/components/dynamic-form/dynamic-form.component.d.ts +97 -0
  47. package/lib/components/dynamic-form/fields/dynamic-field-date.component.d.ts +16 -0
  48. package/lib/components/dynamic-form/fields/dynamic-field-dropdown.component.d.ts +17 -0
  49. package/lib/components/dynamic-form/fields/dynamic-field-lookup.component.d.ts +52 -0
  50. package/lib/components/dynamic-form/fields/dynamic-field-number.component.d.ts +16 -0
  51. package/lib/components/dynamic-form/fields/dynamic-field-text.component.d.ts +17 -0
  52. package/lib/components/dynamic-form/fields/dynamic-field-textarea.component.d.ts +16 -0
  53. package/lib/components/dynamic-form/fields/dynamic-field-wrapper.component.d.ts +20 -0
  54. package/lib/components/dynamic-form/fields/index.d.ts +7 -0
  55. package/lib/components/dynamic-form/models/dynamic-form.models.d.ts +178 -0
  56. package/lib/components/export-dialog/export-dialog.component.d.ts +56 -0
  57. package/lib/config/translation.config.d.ts +24 -0
  58. package/lib/directives/cep-mask.directive.d.ts +13 -0
  59. package/lib/directives/document-mask.directive.d.ts +19 -0
  60. package/lib/directives/phone-mask.directive.d.ts +11 -0
  61. package/lib/interceptors/api.interceptor.d.ts +2 -0
  62. package/lib/models/base-entity.interface.d.ts +7 -0
  63. package/lib/models/entity-list.config.d.ts +161 -0
  64. package/lib/pipes/translate.pipe.d.ts +21 -0
  65. package/lib/services/auth.service.d.ts +82 -0
  66. package/lib/services/cookie.service.d.ts +31 -0
  67. package/lib/services/entity.service.d.ts +99 -0
  68. package/lib/services/mask.service.d.ts +36 -0
  69. package/lib/services/permission.service.d.ts +91 -0
  70. package/lib/services/senior-token.service.d.ts +70 -0
  71. package/lib/services/theme.service.d.ts +16 -0
  72. package/lib/services/translation.service.d.ts +54 -0
  73. package/package.json +53 -0
  74. package/public-api.d.ts +17 -0
  75. package/src/lib/styles/entity-list.shared.scss +383 -0
  76. package/src/lib/styles/index.scss +10 -0
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@seniorsistemas/components-ai" />
5
+ export * from './public-api';
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ /**
4
+ * Módulo principal da biblioteca @seniorsistemas/components-ia
5
+ *
6
+ * Este módulo será populado conforme os componentes forem migrados.
7
+ * Por enquanto, é um módulo vazio para permitir o build inicial.
8
+ */
9
+ export declare class AngularComponentsModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularComponentsModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularComponentsModule, never, [typeof i1.CommonModule], never>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularComponentsModule>;
13
+ }
@@ -0,0 +1,23 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Router, ActivatedRoute } from '@angular/router';
3
+ import { MenuItem } from 'primeng/api';
4
+ import * as i0 from "@angular/core";
5
+ interface TranslationService {
6
+ translate(key: string, params?: any): string;
7
+ }
8
+ export declare class BreadcrumbComponent implements OnInit {
9
+ private router;
10
+ private activatedRoute;
11
+ private translationService?;
12
+ translationPrefix: string;
13
+ isProduction: boolean;
14
+ breadcrumbItems: MenuItem[];
15
+ constructor(router: Router, activatedRoute: ActivatedRoute, translationService?: TranslationService | undefined);
16
+ ngOnInit(): void;
17
+ get homeItem(): MenuItem;
18
+ private buildBreadcrumbs;
19
+ private t;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, [null, null, { optional: true; }]>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "sia-breadcrumb", never, { "translationPrefix": { "alias": "translationPrefix"; "required": false; }; "isProduction": { "alias": "isProduction"; "required": false; }; }, {}, never, never, true, never>;
22
+ }
23
+ export {};
@@ -0,0 +1,46 @@
1
+ import { EventEmitter, OnChanges } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ interface DeleteStatus {
5
+ entity: any;
6
+ status: 'pending' | 'processing' | 'success' | 'error';
7
+ errorMessage?: string;
8
+ }
9
+ export interface EntityService {
10
+ delete(id: any): Observable<any>;
11
+ }
12
+ export interface TranslationService {
13
+ translate(key: string, params?: any): string;
14
+ }
15
+ export declare class BulkDeleteDialogComponent implements OnChanges {
16
+ private translationService?;
17
+ visible: boolean;
18
+ stages: any[];
19
+ service: EntityService;
20
+ entityNameField: string;
21
+ entityCodeField: string;
22
+ translationPrefix: string;
23
+ visibleChange: EventEmitter<boolean>;
24
+ onComplete: EventEmitter<void>;
25
+ deleteStatuses: DeleteStatus[];
26
+ isProcessing: boolean;
27
+ isCompleted: boolean;
28
+ currentIndex: number;
29
+ successCount: number;
30
+ errorCount: number;
31
+ constructor(translationService?: TranslationService | undefined);
32
+ t(key: string, params?: any): string;
33
+ ngOnChanges(): void;
34
+ initializeStatuses(): void;
35
+ get progress(): number;
36
+ get canClose(): boolean;
37
+ startDeletion(): void;
38
+ onHide(): void;
39
+ onClose(): void;
40
+ getStatusSeverity(status: string): 'secondary' | 'info' | 'success' | 'danger';
41
+ getStatusLabel(status: string): string;
42
+ getStatusIcon(status: string): string;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<BulkDeleteDialogComponent, [{ optional: true; }]>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<BulkDeleteDialogComponent, "sia-bulk-delete-dialog", never, { "visible": { "alias": "visible"; "required": false; }; "stages": { "alias": "stages"; "required": false; }; "service": { "alias": "service"; "required": false; }; "entityNameField": { "alias": "entityNameField"; "required": false; }; "entityCodeField": { "alias": "entityCodeField"; "required": false; }; "translationPrefix": { "alias": "translationPrefix"; "required": false; }; }, { "visibleChange": "visibleChange"; "onComplete": "onComplete"; }, never, never, true, never>;
45
+ }
46
+ export {};
@@ -0,0 +1,97 @@
1
+ import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import { DynamicFormFieldConfig, DynamicFormSection, DynamicFormDisplayMode, DynamicFormDialogConfig, DynamicFormDrawerConfig } from './models/dynamic-form.models';
4
+ import { TranslationService } from '../../services/translation.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare class DynamicFormComponent implements OnInit, OnChanges {
7
+ private fb;
8
+ private translationService;
9
+ formFields: DynamicFormFieldConfig[];
10
+ formSections: DynamicFormSection[];
11
+ fixedFilters: DynamicFormFieldConfig[];
12
+ filterSections: DynamicFormSection[];
13
+ entityData: any;
14
+ mode: 'form' | 'filter' | 'inline-edit';
15
+ displayMode: DynamicFormDisplayMode;
16
+ visible: boolean;
17
+ dialogConfig: DynamicFormDialogConfig;
18
+ drawerConfig: DynamicFormDrawerConfig;
19
+ showSubmitButton: boolean;
20
+ showCancelButton: boolean;
21
+ submitButtonLabel?: string;
22
+ cancelButtonLabel?: string;
23
+ submitButtonIcon: string;
24
+ cancelButtonIcon: string;
25
+ formReady: EventEmitter<FormGroup<any>>;
26
+ formSubmit: EventEmitter<any>;
27
+ visibleChange: EventEmitter<boolean>;
28
+ onCancel: EventEmitter<void>;
29
+ fieldSave: EventEmitter<{
30
+ field: string;
31
+ value: any;
32
+ }>;
33
+ form: FormGroup;
34
+ loading: boolean;
35
+ editingField: string | null;
36
+ savingField: boolean;
37
+ get hasFields(): boolean;
38
+ get hasSections(): boolean;
39
+ get hasFixedFilters(): boolean;
40
+ get hasFilterSections(): boolean;
41
+ get allFields(): DynamicFormFieldConfig[];
42
+ get isInlineMode(): boolean;
43
+ get isInlineEditMode(): boolean;
44
+ get fieldMode(): 'form' | 'filter';
45
+ get isDialogMode(): boolean;
46
+ get isDrawerMode(): boolean;
47
+ get dialogHeader(): string;
48
+ get dialogWidth(): string;
49
+ get dialogDraggable(): boolean;
50
+ get dialogResizable(): boolean;
51
+ get dialogMaximizable(): boolean;
52
+ get dialogCloseOnEscape(): boolean;
53
+ get dialogDismissableMask(): boolean;
54
+ get drawerHeader(): string;
55
+ get drawerPosition(): 'left' | 'right' | 'top' | 'bottom';
56
+ get drawerShowCloseIcon(): boolean;
57
+ get drawerCloseOnEscape(): boolean;
58
+ get drawerDismissable(): boolean;
59
+ get drawerStyle(): {
60
+ [key: string]: string;
61
+ };
62
+ get submitLabel(): string;
63
+ get cancelLabel(): string;
64
+ constructor(fb: FormBuilder, translationService: TranslationService);
65
+ ngOnInit(): void;
66
+ ngOnChanges(changes: SimpleChanges): void;
67
+ initForm(): void;
68
+ private getDefaultValue;
69
+ private applyInitialDisabledState;
70
+ loadEntityData(): void;
71
+ private processEntityData;
72
+ private getNestedValue;
73
+ resetForm(): void;
74
+ private processFilterValue;
75
+ private processFormValue;
76
+ getFieldGridClass(field: DynamicFormFieldConfig): string;
77
+ isFieldVisible(field: DynamicFormFieldConfig): boolean;
78
+ isFieldDisabled(field: DynamicFormFieldConfig): boolean;
79
+ setupConditionalFieldsWatcher(): void;
80
+ updateDisabledFields(): void;
81
+ clearHiddenFields(): void;
82
+ getForm(): FormGroup;
83
+ clearFilters(): void;
84
+ getTypePersonValue(): 'NATURAL_PERSON' | 'JURIDICAL_PERSON';
85
+ open(entity?: any): void;
86
+ close(): void;
87
+ handleCancel(): void;
88
+ handleSubmit(): void;
89
+ startEditField(fieldName: string): void;
90
+ isFieldEditing(fieldName: string): boolean;
91
+ saveInlineField(fieldName: string): void;
92
+ cancelInlineEdit(): void;
93
+ completeInlineEdit(): void;
94
+ getFieldDisplayValue(fieldName: string): string;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
96
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "sia-dynamic-form", never, { "formFields": { "alias": "formFields"; "required": false; }; "formSections": { "alias": "formSections"; "required": false; }; "fixedFilters": { "alias": "fixedFilters"; "required": false; }; "filterSections": { "alias": "filterSections"; "required": false; }; "entityData": { "alias": "entityData"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "dialogConfig": { "alias": "dialogConfig"; "required": false; }; "drawerConfig": { "alias": "drawerConfig"; "required": false; }; "showSubmitButton": { "alias": "showSubmitButton"; "required": false; }; "showCancelButton": { "alias": "showCancelButton"; "required": false; }; "submitButtonLabel": { "alias": "submitButtonLabel"; "required": false; }; "cancelButtonLabel": { "alias": "cancelButtonLabel"; "required": false; }; "submitButtonIcon": { "alias": "submitButtonIcon"; "required": false; }; "cancelButtonIcon": { "alias": "cancelButtonIcon"; "required": false; }; }, { "formReady": "formReady"; "formSubmit": "formSubmit"; "visibleChange": "visibleChange"; "onCancel": "onCancel"; "fieldSave": "fieldSave"; }, never, never, true, never>;
97
+ }
@@ -0,0 +1,16 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { DynamicFormFieldConfig } from '../models/dynamic-form.models';
3
+ import { TranslationService } from '../../../services/translation.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DynamicFieldDateComponent {
6
+ private translationService;
7
+ field: DynamicFormFieldConfig;
8
+ form: FormGroup;
9
+ mode: 'form' | 'filter';
10
+ constructor(translationService: TranslationService);
11
+ isFieldInvalid(): boolean;
12
+ isFieldDirty(): boolean;
13
+ getPlaceholder(): string;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldDateComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldDateComponent, "sia-dynamic-field-date", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,17 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { DynamicFormFieldConfig } from '../models/dynamic-form.models';
3
+ import { TranslationService } from '../../../services/translation.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DynamicFieldDropdownComponent {
6
+ private translationService;
7
+ field: DynamicFormFieldConfig;
8
+ form: FormGroup;
9
+ mode: 'form' | 'filter';
10
+ constructor(translationService: TranslationService);
11
+ isFieldInvalid(): boolean;
12
+ isFieldDirty(): boolean;
13
+ getPlaceholder(): string;
14
+ getOptions(): any[];
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldDropdownComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldDropdownComponent, "sia-dynamic-field-dropdown", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1,52 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { DynamicFormFieldConfig } from '../models/dynamic-form.models';
4
+ import { TranslationService } from '../../../services/translation.service';
5
+ import { LookupColumn } from '../../../models/entity-list.config';
6
+ import * as i0 from "@angular/core";
7
+ export declare class DynamicFieldLookupComponent implements OnInit {
8
+ private translationService;
9
+ field: DynamicFormFieldConfig;
10
+ form: FormGroup;
11
+ formGroup: FormGroup;
12
+ mode: 'form' | 'filter';
13
+ displayValue: string;
14
+ showLookupDialog: boolean;
15
+ loading: boolean;
16
+ searchTerm: string;
17
+ data: any[];
18
+ filteredData: any[];
19
+ totalRecords: number;
20
+ currentPage: number;
21
+ pageSize: number;
22
+ selectedItem: any;
23
+ columns: LookupColumn[];
24
+ displayField: string;
25
+ valueField: string;
26
+ searchFields: string[];
27
+ constructor(translationService: TranslationService);
28
+ ngOnInit(): void;
29
+ private watchValueChanges;
30
+ private get value();
31
+ get currentValue(): any;
32
+ private setValue;
33
+ private setupLookupConfig;
34
+ private handleValueDisplay;
35
+ private formatDisplayValue;
36
+ isFieldInvalid(): boolean;
37
+ isFieldDisabled(): boolean;
38
+ getPlaceholder(): string;
39
+ openLookup(): void;
40
+ onDialogHide(): void;
41
+ onPageChange(event: any): void;
42
+ private loadData;
43
+ private updateSelectedItem;
44
+ onSearch(): void;
45
+ clearSearch(): void;
46
+ selectItem(item: any): void;
47
+ onRowSelect(event: any): void;
48
+ clearValue(): void;
49
+ getFieldValue(item: any, field: string): any;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldLookupComponent, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldLookupComponent, "sia-dynamic-field-lookup", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
52
+ }
@@ -0,0 +1,16 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { DynamicFormFieldConfig } from '../models/dynamic-form.models';
3
+ import { TranslationService } from '../../../services/translation.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DynamicFieldNumberComponent {
6
+ private translationService;
7
+ field: DynamicFormFieldConfig;
8
+ form: FormGroup;
9
+ mode: 'form' | 'filter';
10
+ constructor(translationService: TranslationService);
11
+ isFieldInvalid(): boolean;
12
+ isFieldDirty(): boolean;
13
+ getPlaceholder(): string;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldNumberComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldNumberComponent, "sia-dynamic-field-number", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,17 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { DynamicFormFieldConfig } from '../models/dynamic-form.models';
3
+ import { TranslationService } from '../../../services/translation.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DynamicFieldTextComponent {
6
+ private translationService;
7
+ field: DynamicFormFieldConfig;
8
+ form: FormGroup;
9
+ mode: 'form' | 'filter';
10
+ constructor(translationService: TranslationService);
11
+ isFieldInvalid(): boolean;
12
+ isFieldDirty(): boolean;
13
+ getPlaceholder(): string;
14
+ getDocumentType(): 'NATURAL_PERSON' | 'JURIDICAL_PERSON';
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldTextComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldTextComponent, "sia-dynamic-field-text", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1,16 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { DynamicFormFieldConfig } from '../models/dynamic-form.models';
3
+ import { TranslationService } from '../../../services/translation.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DynamicFieldTextareaComponent {
6
+ private translationService;
7
+ field: DynamicFormFieldConfig;
8
+ form: FormGroup;
9
+ mode: 'form' | 'filter';
10
+ constructor(translationService: TranslationService);
11
+ isFieldInvalid(): boolean;
12
+ isFieldDirty(): boolean;
13
+ getPlaceholder(): string;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldTextareaComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldTextareaComponent, "sia-dynamic-field-textarea", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,20 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { DynamicFormFieldConfig } from '../models/dynamic-form.models';
3
+ import { TranslationService } from '../../../services/translation.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Componente wrapper para campos de formulário dinâmico
7
+ * Centraliza a renderização de label, campo e mensagem de erro
8
+ */
9
+ export declare class DynamicFieldWrapperComponent {
10
+ private translationService;
11
+ field: DynamicFormFieldConfig;
12
+ form: FormGroup;
13
+ mode: 'form' | 'filter';
14
+ constructor(translationService: TranslationService);
15
+ isRequired(): boolean;
16
+ isFieldInvalid(): boolean;
17
+ getFieldError(): string;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldWrapperComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldWrapperComponent, "sia-dynamic-field-wrapper", never, { "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, ["*"], true, never>;
20
+ }
@@ -0,0 +1,7 @@
1
+ export * from './dynamic-field-text.component';
2
+ export * from './dynamic-field-textarea.component';
3
+ export * from './dynamic-field-number.component';
4
+ export * from './dynamic-field-date.component';
5
+ export * from './dynamic-field-dropdown.component';
6
+ export * from './dynamic-field-lookup.component';
7
+ export * from './dynamic-field-wrapper.component';
@@ -0,0 +1,178 @@
1
+ import { ValidatorFn } from '@angular/forms';
2
+ /**
3
+ * Lookup column configuration for dynamic form lookup fields
4
+ */
5
+ export interface DynamicFormLookupColumn {
6
+ field: string;
7
+ header: string;
8
+ width?: string;
9
+ type?: 'text' | 'number';
10
+ }
11
+ /**
12
+ * Responsive size configuration for form fields
13
+ */
14
+ export interface DynamicFormFieldSize {
15
+ xs?: number;
16
+ sm?: number;
17
+ md?: number;
18
+ lg?: number;
19
+ xl?: number;
20
+ }
21
+ /**
22
+ * Dynamic Form Field Configuration
23
+ * Complete configuration interface for all field types in dynamic forms
24
+ */
25
+ export interface DynamicFormFieldConfig {
26
+ field: string;
27
+ label: string;
28
+ type: 'text' | 'number' | 'dropdown' | 'lookup' | 'textarea' | 'enum' | 'date';
29
+ validators?: ValidatorFn[];
30
+ required?: boolean;
31
+ placeholder?: string;
32
+ defaultValue?: any;
33
+ disabled?: boolean;
34
+ colspan?: number;
35
+ size?: DynamicFormFieldSize;
36
+ colspanXs?: number;
37
+ colspanSm?: number;
38
+ colspanMd?: number;
39
+ colspanLg?: number;
40
+ colspanXl?: number;
41
+ colspanWhen?: {
42
+ field: string;
43
+ value: any;
44
+ colspan: number;
45
+ }[];
46
+ visibleWhen?: {
47
+ field: string;
48
+ value: any;
49
+ };
50
+ disabledWhen?: {
51
+ field: string;
52
+ value: any;
53
+ };
54
+ minLength?: number;
55
+ maxLength?: number;
56
+ mask?: 'cep' | 'phone' | 'document' | 'cpf' | 'cnpj' | 'dynamic';
57
+ useCepMask?: boolean;
58
+ usePhoneMask?: boolean;
59
+ rows?: number;
60
+ fullSize?: boolean;
61
+ min?: number;
62
+ max?: number;
63
+ minFractionDigits?: number;
64
+ maxFractionDigits?: number;
65
+ numberMode?: 'decimal' | 'currency';
66
+ currency?: string;
67
+ locale?: string;
68
+ useGrouping?: boolean;
69
+ dateFormat?: string;
70
+ options?: any[];
71
+ optionLabel?: string;
72
+ optionValue?: string;
73
+ showClear?: boolean;
74
+ filter?: boolean;
75
+ filterBy?: string;
76
+ enumValues?: string[];
77
+ enumLabels?: {
78
+ [key: string]: string;
79
+ };
80
+ enumOptions?: {
81
+ value: any;
82
+ label: string;
83
+ }[];
84
+ lookupEntity?: string;
85
+ lookupService?: any;
86
+ lookupDisplayField?: string;
87
+ lookupDisplayFields?: string[];
88
+ lookupValueField?: string;
89
+ lookupSearchFields?: string[];
90
+ lookupColumns?: DynamicFormLookupColumn[];
91
+ lookupFilters?: {
92
+ [key: string]: any;
93
+ };
94
+ lookupDynamicFilters?: (formValues: any) => {
95
+ [key: string]: any;
96
+ };
97
+ }
98
+ /**
99
+ * Dynamic Form Display Mode
100
+ * Define como o formulário será exibido
101
+ */
102
+ export type DynamicFormDisplayMode = 'inline' | 'dialog' | 'drawer' | 'inline-edit';
103
+ /**
104
+ * Dynamic Form Dialog Configuration
105
+ * Configurações específicas para o modo dialog
106
+ */
107
+ export interface DynamicFormDialogConfig {
108
+ header?: string;
109
+ width?: string;
110
+ draggable?: boolean;
111
+ resizable?: boolean;
112
+ maximizable?: boolean;
113
+ closeOnEscape?: boolean;
114
+ dismissableMask?: boolean;
115
+ }
116
+ /**
117
+ * Dynamic Form Drawer Size
118
+ * Tamanhos padronizados para o drawer
119
+ */
120
+ export type DynamicFormDrawerSize = 'small' | 'medium' | 'large' | 'xlarge' | 'full';
121
+ /**
122
+ * Dynamic Form Drawer Configuration
123
+ * Configurações específicas para o modo drawer
124
+ */
125
+ export interface DynamicFormDrawerConfig {
126
+ header?: string;
127
+ position?: 'left' | 'right' | 'top' | 'bottom';
128
+ size?: DynamicFormDrawerSize;
129
+ customWidth?: string;
130
+ showCloseIcon?: boolean;
131
+ closeOnEscape?: boolean;
132
+ dismissable?: boolean;
133
+ }
134
+ /**
135
+ * Dynamic Form Section
136
+ * Agrupa campos em seções colapsáveis
137
+ */
138
+ export interface DynamicFormSection {
139
+ title: string;
140
+ fields: DynamicFormFieldConfig[];
141
+ collapsed?: boolean;
142
+ toggleable?: boolean;
143
+ icon?: string;
144
+ }
145
+ /**
146
+ * Dynamic Form Configuration
147
+ * Main configuration interface for the dynamic form component
148
+ */
149
+ export interface DynamicFormConfig {
150
+ fields: DynamicFormFieldConfig[];
151
+ sections?: DynamicFormSection[];
152
+ fixedFilters?: DynamicFormFieldConfig[];
153
+ filterSections?: DynamicFormSection[];
154
+ mode?: 'form' | 'filter';
155
+ displayMode?: DynamicFormDisplayMode;
156
+ dialogConfig?: DynamicFormDialogConfig;
157
+ drawerConfig?: DynamicFormDrawerConfig;
158
+ initialData?: any;
159
+ submitOnEnter?: boolean;
160
+ showSubmitButton?: boolean;
161
+ submitButtonLabel?: string;
162
+ showCancelButton?: boolean;
163
+ cancelButtonLabel?: string;
164
+ }
165
+ /**
166
+ * Dynamic Form Submit Event
167
+ */
168
+ export interface DynamicFormSubmitEvent {
169
+ value: any;
170
+ valid: boolean;
171
+ dirty: boolean;
172
+ touched: boolean;
173
+ }
174
+ /**
175
+ * Type alias for backward compatibility with FormFieldConfig
176
+ * @deprecated Use DynamicFormFieldConfig instead
177
+ */
178
+ export type FormFieldConfig = DynamicFormFieldConfig;
@@ -0,0 +1,56 @@
1
+ import { EventEmitter, OnChanges } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export interface ColumnOption {
4
+ field: string;
5
+ header: string;
6
+ selected: boolean;
7
+ }
8
+ interface ExportFormat {
9
+ value: 'xlsx' | 'pdf';
10
+ label: string;
11
+ icon: string;
12
+ description: string;
13
+ }
14
+ interface ExportScope {
15
+ value: 'all' | 'selected';
16
+ label: string;
17
+ icon: string;
18
+ description: string;
19
+ }
20
+ export interface TranslationService {
21
+ translate(key: string, params?: any): string;
22
+ }
23
+ export declare class ExportDialogComponent implements OnChanges {
24
+ private translationService?;
25
+ visible: boolean;
26
+ allRecords: any[];
27
+ selectedRecords: any[];
28
+ statusLabels?: {
29
+ [key: string]: string;
30
+ };
31
+ translationPrefix: string;
32
+ set availableColumns(columns: ColumnOption[]);
33
+ visibleChange: EventEmitter<boolean>;
34
+ exportFormat: 'xlsx' | 'pdf';
35
+ exportScope: 'all' | 'selected';
36
+ formats: ExportFormat[];
37
+ scopes: ExportScope[];
38
+ columns: ColumnOption[];
39
+ constructor(translationService?: TranslationService | undefined);
40
+ ngOnChanges(): void;
41
+ t(key: string): string;
42
+ private initializeFormats;
43
+ private initializeScopes;
44
+ get recordsToExport(): any[];
45
+ get selectedColumnsCount(): number;
46
+ get canExport(): boolean;
47
+ onHide(): void;
48
+ selectAllColumns(): void;
49
+ deselectAllColumns(): void;
50
+ export(): void;
51
+ private exportToExcel;
52
+ private exportToPDF;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExportDialogComponent, [{ optional: true; }]>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExportDialogComponent, "sia-export-dialog", never, { "visible": { "alias": "visible"; "required": false; }; "allRecords": { "alias": "allRecords"; "required": false; }; "selectedRecords": { "alias": "selectedRecords"; "required": false; }; "statusLabels": { "alias": "statusLabels"; "required": false; }; "translationPrefix": { "alias": "translationPrefix"; "required": false; }; "availableColumns": { "alias": "availableColumns"; "required": false; }; }, { "visibleChange": "visibleChange"; }, never, never, true, never>;
55
+ }
56
+ export {};
@@ -0,0 +1,24 @@
1
+ export interface LanguageConfig {
2
+ code: string;
3
+ name: string;
4
+ flag: string;
5
+ rtl?: boolean;
6
+ aliases?: string[];
7
+ }
8
+ export declare const SUPPORTED_LANGUAGES: LanguageConfig[];
9
+ export declare const DEFAULT_LANGUAGE = "pt-BR";
10
+ export declare const TRANSLATION_CONFIG: {
11
+ supportedLanguages: LanguageConfig[];
12
+ defaultLanguage: string;
13
+ fallbackLanguage: string;
14
+ storageKey: string;
15
+ assetsPath: string;
16
+ };
17
+ /**
18
+ * Mapeia um locale do token Senior para um código de idioma suportado
19
+ */
20
+ export declare function mapTokenLocaleToLanguage(tokenLocale: string): string | null;
21
+ /**
22
+ * Obtém informações de um idioma pelo código
23
+ */
24
+ export declare function getLanguageInfo(code: string): LanguageConfig | null;
@@ -0,0 +1,13 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CepMaskDirective {
4
+ private el;
5
+ constructor(el: ElementRef);
6
+ onKeyPress(event: KeyboardEvent): boolean;
7
+ onInput(event: any): void;
8
+ onBlur(event: any): void;
9
+ onPaste(event: ClipboardEvent): void;
10
+ private applyCepMask;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<CepMaskDirective, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CepMaskDirective, "[siaCepMask]", never, {}, {}, never, never, true, never>;
13
+ }
@@ -0,0 +1,19 @@
1
+ import { ElementRef, OnInit } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { MaskService } from '../services/mask.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DocumentMaskDirective implements OnInit {
6
+ private el;
7
+ private control;
8
+ private maskService;
9
+ documentType: 'cpf' | 'cnpj' | 'auto';
10
+ allowAlphanumeric: boolean;
11
+ typePerson?: 'NATURAL_PERSON' | 'JURIDICAL_PERSON' | null;
12
+ constructor(el: ElementRef, control: NgControl, maskService: MaskService);
13
+ ngOnInit(): void;
14
+ onInput(event: any): void;
15
+ onBlur(event: any): void;
16
+ private applyMask;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<DocumentMaskDirective, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DocumentMaskDirective, "[siaDocumentMask]", never, { "documentType": { "alias": "documentType"; "required": false; }; "allowAlphanumeric": { "alias": "allowAlphanumeric"; "required": false; }; "typePerson": { "alias": "typePerson"; "required": false; }; }, {}, never, never, true, never>;
19
+ }