@tsi-developpement/tsi-shared-ui 1.7.37 → 1.7.39

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 (37) hide show
  1. package/esm2022/lib/end-points/endpoints.mjs +5 -1
  2. package/esm2022/lib/interceptors/index.mjs +2 -0
  3. package/esm2022/lib/interceptors/request-tracker.interceptor.mjs +28 -0
  4. package/esm2022/lib/models/entity-info/entity-info.mjs +9 -1
  5. package/esm2022/lib/models/index.mjs +3 -1
  6. package/esm2022/lib/models/request-management/request-tracker-config.mjs +2 -0
  7. package/esm2022/lib/models/request-management/request-tracker-state.mjs +2 -0
  8. package/esm2022/lib/services/configuration/entity-configuration.service.mjs +7 -1
  9. package/esm2022/lib/services/index.mjs +2 -1
  10. package/esm2022/lib/services/request-management/request-tracker.service.mjs +120 -0
  11. package/esm2022/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.mjs +126 -31
  12. package/esm2022/lib/tsi-components/spinner/spinner.component.mjs +3 -3
  13. package/esm2022/lib/tsi-components/tsi-form/tsi-form.component.mjs +17 -3
  14. package/esm2022/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.mjs +19 -6
  15. package/esm2022/lib/tsi-directives/busy.directive.mjs +6 -7
  16. package/esm2022/public-api.mjs +2 -1
  17. package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +306 -33
  18. package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
  19. package/lib/consts/app-providers.d.ts +1 -1
  20. package/lib/end-points/endpoints.d.ts +4 -0
  21. package/lib/interceptors/index.d.ts +1 -0
  22. package/lib/interceptors/request-tracker.interceptor.d.ts +20 -0
  23. package/lib/models/entity-info/entity-info.d.ts +6 -0
  24. package/lib/models/index.d.ts +2 -0
  25. package/lib/models/request-management/request-tracker-config.d.ts +41 -0
  26. package/lib/models/request-management/request-tracker-state.d.ts +9 -0
  27. package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
  28. package/lib/services/configuration/entity-configuration.service.d.ts +4 -5
  29. package/lib/services/index.d.ts +1 -0
  30. package/lib/services/request-management/request-tracker.service.d.ts +80 -0
  31. package/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.d.ts +23 -5
  32. package/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.d.ts +2 -0
  33. package/lib/tsi-components/tsi-form/tsi-form.component.d.ts +5 -0
  34. package/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.d.ts +5 -0
  35. package/lib/tsi-directives/busy.directive.d.ts +2 -3
  36. package/package.json +1 -1
  37. package/public-api.d.ts +1 -0
@@ -2,4 +2,4 @@ import { DynamicFormService } from "../services/dynamic-form/dynamic-form.servic
2
2
  import { PresentationDesignerBaseService } from "../services/presentation-setting/presentation-designer-base.service";
3
3
  import { GenericValidationStateService } from "../services/validation/generic-validation-state.service";
4
4
  import { InputRegistryService } from "../services/validation/input-registry.service";
5
- export declare const appProviders: (typeof PresentationDesignerBaseService | typeof GenericValidationStateService | typeof InputRegistryService | typeof DynamicFormService)[];
5
+ export declare const appProviders: (typeof GenericValidationStateService | typeof InputRegistryService | typeof PresentationDesignerBaseService | typeof DynamicFormService)[];
@@ -91,6 +91,8 @@ export declare const AdministrationSegments: {
91
91
  getWorkflowEtatFormByClassName: string;
92
92
  entityInfoController: string;
93
93
  sqlColumns: string;
94
+ entityColumns: string;
95
+ projectFilesColumns: string;
94
96
  getWorkflowConditionPassageOperatorEnum: string;
95
97
  getByCodeModule: string;
96
98
  getDescriminatorClassValues: string;
@@ -205,6 +207,8 @@ export declare const AdministrationEndpoints: {
205
207
  deleteEntityInformations: (className: string) => string;
206
208
  getClasswByNom: () => string;
207
209
  getEntityColumns: (businessClassName: string) => string;
210
+ getEntitycolumnsFromModels: (businessClassName: string) => string;
211
+ getColumnsFromProjectDatabase: (businessClassName: string) => string;
208
212
  getSqlColumns: (businessClassName: string) => string;
209
213
  getWorkflowConditionPassageOperatorEnum: () => string;
210
214
  getConnectedUsers: () => string;
@@ -0,0 +1 @@
1
+ export * from './request-tracker.interceptor';
@@ -0,0 +1,20 @@
1
+ import { RequestTrackerService } from "../services/request-management/request-tracker.service";
2
+ import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "@angular/common/http";
3
+ import { Observable } from "rxjs";
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * HTTP interceptor responsible for tracking all outgoing HTTP requests.
7
+ *
8
+ * It notifies the {@link RequestTrackerService} when a request starts and when it completes,
9
+ * allowing the application to maintain a global "in-progress" state (e.g., for displaying a spinner).
10
+ *
11
+ * Requests that match configured ignored endpoints (see {@link RequestTrackerConfig})
12
+ * will be automatically excluded from tracking.
13
+ */
14
+ export declare class RequestTrackerInterceptor implements HttpInterceptor {
15
+ private _requestTrackerService;
16
+ constructor(_requestTrackerService: RequestTrackerService);
17
+ intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<RequestTrackerInterceptor, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<RequestTrackerInterceptor>;
20
+ }
@@ -35,3 +35,9 @@ export declare class UpdateEntityInfoWithRelationsRequest {
35
35
  relations: EntityRelation[];
36
36
  constructor(className: string, entity: EntityInfo, relations: EntityRelation[]);
37
37
  }
38
+ export declare class EntityColumnDetailResponse {
39
+ name: string;
40
+ type: string;
41
+ isNullable: boolean;
42
+ maxLength: number | null;
43
+ }
@@ -35,3 +35,5 @@ export * from './journalisation-application/journalisation-application';
35
35
  export * from './journalisation-application/status-history';
36
36
  export * from './application/configuration/endpoint-infos';
37
37
  export * from './application/configuration/entity-delete-behavior';
38
+ export * from './request-management/request-tracker-state';
39
+ export * from './request-management/request-tracker-config';
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Defines a rule to ignore a specific endpoint.
3
+ */
4
+ export interface IgnoredEndpoint {
5
+ /**
6
+ * Pattern used to match the request URL.
7
+ * Can be a string (uses `includes`) or a RegExp (uses `test`).
8
+ */
9
+ pattern: string | RegExp;
10
+ /**
11
+ * Indicates whether string matching should be case sensitive.
12
+ *
13
+ * - Applies only when `pattern` is a string
14
+ * - Default: false
15
+ */
16
+ caseSensitive?: boolean;
17
+ }
18
+ /**
19
+ * Configuration object for the RequestTrackerService.
20
+ *
21
+ * Allows each application to customize how HTTP requests are tracked.
22
+ */
23
+ export interface RequestTrackerConfig {
24
+ /**
25
+ * List of endpoint rules to exclude from request tracking.
26
+ *
27
+ * Each rule defines:
28
+ * - a pattern (string or RegExp)
29
+ * - optional matching options (e.g., case sensitivity)
30
+ *
31
+ * Example:
32
+ * ```ts
33
+ * ignoredEndpoints: [
34
+ * { pattern: '/api/notifications' },
35
+ * { pattern: '/api/messages', caseSensitive: true },
36
+ * { pattern: /\/api\/ping$/ }
37
+ * ]
38
+ * ```
39
+ */
40
+ ignoredEndpoints?: IgnoredEndpoint[];
41
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Represents the current state of HTTP requests being tracked.
3
+ */
4
+ export interface RequestTrackerState {
5
+ /** The number of active (ongoing) HTTP requests */
6
+ readonly activeRequestCount: number;
7
+ /** True if at least one HTTP request is currently in progress */
8
+ readonly hasActiveRequest: boolean;
9
+ }
@@ -2,7 +2,7 @@ import { DynamicDialogConfig, DynamicDialogRef } from "primeng/dynamicdialog";
2
2
  import { TabView } from "primeng/tabview";
3
3
  import { JwtHelperService } from "@auth0/angular-jwt";
4
4
  import { ConfirmationService, MessageService } from "primeng/api";
5
- export declare const SharedUiTsiProviders: (typeof TabView | typeof DynamicDialogRef | typeof DynamicDialogConfig | typeof JwtHelperService | typeof MessageService | typeof ConfirmationService | {
5
+ export declare const SharedUiTsiProviders: (typeof DynamicDialogRef | typeof DynamicDialogConfig | typeof JwtHelperService | typeof TabView | typeof MessageService | typeof ConfirmationService | {
6
6
  provide: import("@angular/core").InjectionToken<unknown>;
7
7
  useValue: import("@angular/core").InjectionToken<unknown>;
8
8
  })[];
@@ -1,6 +1,6 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { Observable } from 'rxjs';
3
- import { EntityInfo, EntityInfoWithRelations, UpdateEntityInfoWithRelationsRequest } from '../../models';
3
+ import { EntityColumnDetailResponse, EntityInfo, EntityInfoWithRelations, UpdateEntityInfoWithRelationsRequest } from '../../models';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class EntityConfigurationService {
6
6
  private httpClient;
@@ -21,10 +21,9 @@ export declare class EntityConfigurationService {
21
21
  key: string;
22
22
  value: string;
23
23
  }[]>;
24
- getSqlColumns(businessClassName: string): Observable<{
25
- key: string;
26
- value: string;
27
- }[]>;
24
+ getEntitycolumnsFromModels(businessClassName: string): Observable<EntityColumnDetailResponse[]>;
25
+ getSqlColumns(businessClassName: string): Observable<EntityColumnDetailResponse[]>;
26
+ getColumnsFromProjectDatabase(businessClassName: string): Observable<EntityColumnDetailResponse[]>;
28
27
  static ɵfac: i0.ɵɵFactoryDeclaration<EntityConfigurationService, never>;
29
28
  static ɵprov: i0.ɵɵInjectableDeclaration<EntityConfigurationService>;
30
29
  }
@@ -40,3 +40,4 @@ export * from './status/entityStatus.service';
40
40
  export * from './journalisation/journalisation-application.service';
41
41
  export * from './journalisation/status-history.service';
42
42
  export * from './advanced-search-component/advanced-search-component.service';
43
+ export * from './request-management/request-tracker.service';
@@ -0,0 +1,80 @@
1
+ import { Observable } from 'rxjs';
2
+ import { RequestTrackerState } from '../../models/request-management/request-tracker-state';
3
+ import { RequestTrackerConfig } from '../../models/request-management/request-tracker-config';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service to track the status of all ongoing HTTP requests.
7
+ *
8
+ * Useful for showing global loading indicators or preventing
9
+ * multiple simultaneous operations in the UI.
10
+ *
11
+ * The service exposes a read-only observable `requestState$` that emits
12
+ * the current number of active requests and a boolean flag indicating
13
+ * if any request is in progress.
14
+ */
15
+ export declare class RequestTrackerService {
16
+ private _requestTrackerConfig;
17
+ /**
18
+ * Cached ignored endpoint patterns.
19
+ */
20
+ private _ignoredEndpoints;
21
+ /**
22
+ * Internal subject that keeps track of the number of active requests.
23
+ * Using BehaviorSubject ensures that new subscribers get the latest count immediately.
24
+ */
25
+ private readonly _activeRequestCount$;
26
+ /**
27
+ * Observable exposing the derived request tracker state.
28
+ * Subscribers receive updates whenever the number of active requests changes.
29
+ */
30
+ readonly requestState$: Observable<RequestTrackerState>;
31
+ /**
32
+ * Shortcut observable for templates/components that only need
33
+ * a boolean indicating if any request is in progress.
34
+ */
35
+ readonly hasActiveRequests$: Observable<boolean>;
36
+ constructor();
37
+ /**
38
+ * Initializes the service with application-specific configuration.
39
+ *
40
+ * This should typically be called once during app startup (e.g., via APP_INITIALIZER).
41
+ *
42
+ * @param config Configuration object containing ignored endpoints and other options.
43
+ */
44
+ initialize(config: RequestTrackerConfig): void;
45
+ /**
46
+ * Starts tracking an HTTP request.
47
+ *
48
+ * If the request URL matches one of the ignored endpoint patterns,
49
+ * it will not be counted.
50
+ *
51
+ * @param url The request URL.
52
+ */
53
+ startRequest(url?: string): void;
54
+ /**
55
+ * Completes tracking of an HTTP request.
56
+ *
57
+ * Ensures the active request count never goes below zero.
58
+ * Ignored endpoints are skipped.
59
+ *
60
+ * @param url The request URL.
61
+ */
62
+ completeRequest(url?: string): void;
63
+ /**
64
+ * Synchronously checks whether any HTTP request is currently in progress.
65
+ *
66
+ * @returns `true` if at least one request is active; otherwise `false`.
67
+ */
68
+ hasActiveRequests(): boolean;
69
+ /**
70
+ * Determines whether a given URL should be ignored based on configured rules.
71
+ *
72
+ * Supports:
73
+ * - string matching (`includes`)
74
+ * - RegExp matching (`test`)
75
+ * - optional case sensitivity for string patterns
76
+ */
77
+ private _shouldIgnore;
78
+ static ɵfac: i0.ɵɵFactoryDeclaration<RequestTrackerService, never>;
79
+ static ɵprov: i0.ɵɵInjectableDeclaration<RequestTrackerService>;
80
+ }
@@ -1,7 +1,7 @@
1
1
  import { KeyValue } from '@angular/common';
2
2
  import { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';
3
3
  import { GridColumn } from '../../interfaces';
4
- import { EntityInfoWithRelations } from '../../models';
4
+ import { EntityColumnDetailResponse, EntityInfoWithRelations } from '../../models';
5
5
  import { EndpointInfos } from '../../models/application/configuration/endpoint-infos';
6
6
  import { ApiExplorerService, EntityConfigurationService, ErrorResponseManagerService, TsiConfirmationService, TsiNotificationService } from '../../services';
7
7
  import { TsiFormComponentBaseComponent } from '../../tsi-base/components/tsi-form-base/tsi-form-base.component';
@@ -19,10 +19,15 @@ export declare class CreateOrEditEntityInformationsComponent extends TsiFormComp
19
19
  endpointInfos: EndpointInfos[];
20
20
  componentsOptions: KeyValue<string, string>[];
21
21
  uid?: string;
22
- propertiesData: {
23
- entityProperty: string;
24
- sqlColumn: string;
25
- }[];
22
+ modelColumnsData: EntityColumnDetailResponse[];
23
+ dbColumnsData: EntityColumnDetailResponse[];
24
+ sqlColumnsData: EntityColumnDetailResponse[];
25
+ propertiesSearchText: string;
26
+ propertiesFirst: number;
27
+ propertiesPageSize: number;
28
+ modelComparisonMap: Map<string, Record<string, string>>;
29
+ dbComparisonMap: Map<string, Record<string, string>>;
30
+ sqlComparisonMap: Map<string, Record<string, string>>;
26
31
  propertiesGridColumns: Array<GridColumn>;
27
32
  permissionsGridColumns: Array<GridColumn>;
28
33
  entitiesRelationsColumns: Array<GridColumn>;
@@ -33,6 +38,19 @@ export declare class CreateOrEditEntityInformationsComponent extends TsiFormComp
33
38
  save(): void;
34
39
  getPropertiesData(): void;
35
40
  onAddRelation(): void;
41
+ private filterColumns;
42
+ get filteredModelColumns(): EntityColumnDetailResponse[];
43
+ get filteredDbColumns(): EntityColumnDetailResponse[];
44
+ get filteredSqlColumns(): EntityColumnDetailResponse[];
45
+ get propertiesTotalRecords(): number;
46
+ get pagedModelColumns(): EntityColumnDetailResponse[];
47
+ get pagedDbColumns(): EntityColumnDetailResponse[];
48
+ get pagedSqlColumns(): EntityColumnDetailResponse[];
49
+ onPropertiesPageChange(event: any): void;
50
+ onPropertiesSearch(): void;
51
+ computeComparisons(): void;
52
+ private computeSourceComparison;
53
+ getComparisonClass(source: 'model' | 'db' | 'sql', row: EntityColumnDetailResponse, field: string): string;
36
54
  static ɵfac: i0.ɵɵFactoryDeclaration<CreateOrEditEntityInformationsComponent, never>;
37
55
  static ɵcmp: i0.ɵɵComponentDeclaration<CreateOrEditEntityInformationsComponent, "app-create-or-edit-entity-informations", never, {}, {}, never, never, false, never>;
38
56
  }
@@ -109,6 +109,8 @@ export declare class AddReportPopupComponent extends TsiFormComponentBaseCompone
109
109
  deleteEntityInformations: (className: string) => string;
110
110
  getClasswByNom: () => string;
111
111
  getEntityColumns: (businessClassName: string) => string;
112
+ getEntitycolumnsFromModels: (businessClassName: string) => string;
113
+ getColumnsFromProjectDatabase: (businessClassName: string) => string;
112
114
  getSqlColumns: (businessClassName: string) => string;
113
115
  getWorkflowConditionPassageOperatorEnum: () => string;
114
116
  getConnectedUsers: () => string;
@@ -22,6 +22,7 @@ import { TsiModalFooterComponent } from '../tsi-modal-footer/tsi-modal-footer.co
22
22
  import { TsiModalHeaderComponent } from '../tsi-modal-header/tsi-modal-header.component';
23
23
  import { FormulaireService } from '../../services/dynamic-form/formulaire.service';
24
24
  import { EntityConfigurationService } from '../../services/configuration/entity-configuration.service';
25
+ import { RequestTrackerService } from '../../services/request-management/request-tracker.service';
25
26
  import * as i0 from "@angular/core";
26
27
  export declare class TsiFormComponent implements OnInit, AfterViewInit, AfterContentChecked {
27
28
  private entityStatusService;
@@ -99,9 +100,12 @@ export declare class TsiFormComponent implements OnInit, AfterViewInit, AfterCon
99
100
  isBusinessClassSet: boolean;
100
101
  isFormsInfosCalculated: boolean;
101
102
  ignoreDescriminator: boolean;
103
+ hasActiveRequests: boolean;
104
+ private requestTrackerStateSubscription?;
102
105
  dynamicFormService: DynamicFormService;
103
106
  formulaireService: FormulaireService;
104
107
  entityConfigurationService: EntityConfigurationService;
108
+ requestTrackerService: RequestTrackerService;
105
109
  constructor(entityStatusService: EntityStatusService, statusColorService: StatusColorService, _fichierService: FichierService, _errorResponseManagerService: ErrorResponseManagerService, _tsiConfirmService: TsiConfirmationService, _tsiNotificationService: TsiNotificationService, _cdr: ChangeDetectorRef, _layoutHelperService: LayoutHelperService, workflowConfigurationService: WorkflowConfigurationService, _colonnePersonnaliseeService: ColonnePersonnaliseeService, ref?: DynamicDialogRef<any> | undefined, config?: DynamicDialogConfig<any> | undefined);
106
110
  ngAfterContentChecked(): void;
107
111
  ngOnDestroy(): void;
@@ -159,6 +163,7 @@ export declare class TsiFormComponent implements OnInit, AfterViewInit, AfterCon
159
163
  private getAllFormsOfBusinessClass;
160
164
  private recalculateFormsVisibility;
161
165
  private calculateFormsInfos;
166
+ private _initializeRequestTrackerStateSubscription;
162
167
  static ɵfac: i0.ɵɵFactoryDeclaration<TsiFormComponent, never>;
163
168
  static ɵcmp: i0.ɵɵComponentDeclaration<TsiFormComponent, "tsi-form", never, { "class": { "alias": "class"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "optionalEndpoints": { "alias": "optionalEndpoints"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "modalSize": { "alias": "modalSize"; "required": false; }; "formEndpoint": { "alias": "formEndpoint"; "required": false; }; "formName": { "alias": "formName"; "required": false; }; "isReportingToolbarDisabled": { "alias": "isReportingToolbarDisabled"; "required": false; }; "isCreateOnly": { "alias": "isCreateOnly"; "required": false; }; }, { "onSave": "onSave"; "onSubmit": "onSubmit"; "onSubmitFormWorkflowConfiguration": "onSubmitFormWorkflowConfiguration"; "formRefChange": "formRefChange"; "onStatusChange": "onStatusChange"; }, ["modalHeaderComp", "modalFooterComp"], ["*"], false, never>;
164
169
  }
@@ -3,6 +3,7 @@ import { ButtonType } from '../../enums/button-type.enum';
3
3
  import { LocalizePipe } from '../../pipes/localize.pipe';
4
4
  import { LayoutService } from '../../services/application/app.layout.service';
5
5
  import { DialogDataService } from '../../services/dialog-data.service';
6
+ import { RequestTrackerService } from '../../services/request-management/request-tracker.service';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class TsiModalFooterComponent implements OnInit, OnDestroy {
8
9
  private _injector;
@@ -29,7 +30,10 @@ export declare class TsiModalFooterComponent implements OnInit, OnDestroy {
29
30
  showFiles: boolean;
30
31
  stylePositionClass: string;
31
32
  SaveButtonType: ButtonType;
33
+ hasActiveRequests: boolean;
32
34
  private layoutDirectionSubscritpion?;
35
+ private requestTrackerStateSubscription?;
36
+ requestTrackerService: RequestTrackerService;
33
37
  constructor(_injector: EnvironmentInjector, dialogDataService: DialogDataService, _layoutService: LayoutService, localize?: LocalizePipe | undefined);
34
38
  ngOnDestroy(): void;
35
39
  l(key: string): string;
@@ -40,6 +44,7 @@ export declare class TsiModalFooterComponent implements OnInit, OnDestroy {
40
44
  onCancel(): void;
41
45
  onAdditionalButton(): void;
42
46
  onFiles(): Promise<void>;
47
+ private _initializeRequestTrackerStateSubscription;
43
48
  static ɵfac: i0.ɵɵFactoryDeclaration<TsiModalFooterComponent, never>;
44
49
  static ɵcmp: i0.ɵɵComponentDeclaration<TsiModalFooterComponent, "Tsi-Modal-Footer", never, { "cancelDisabled": { "alias": "cancelDisabled"; "required": false; }; "saveDisabled": { "alias": "saveDisabled"; "required": false; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; }; "saveLabel": { "alias": "saveLabel"; "required": false; }; "isConsult": { "alias": "isConsult"; "required": false; }; "isDuplicate": { "alias": "isDuplicate"; "required": false; }; "isOnlyCreate": { "alias": "isOnlyCreate"; "required": false; }; "additionalButtonLabel": { "alias": "additionalButtonLabel"; "required": false; }; "additionalButtonIcon": { "alias": "additionalButtonIcon"; "required": false; }; "additionalButtonDisabled": { "alias": "additionalButtonDisabled"; "required": false; }; "showAdditionalButton": { "alias": "showAdditionalButton"; "required": false; }; }, { "onCancelClick": "onCancelClick"; "onSaveClick": "onSaveClick"; "onAdditionalButtonClick": "onAdditionalButtonClick"; }, never, never, false, never>;
45
50
  }
@@ -1,11 +1,10 @@
1
- import { ComponentFactoryResolver, TemplateRef, ViewContainerRef } from '@angular/core';
1
+ import { TemplateRef, ViewContainerRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class BusyDirective {
4
4
  private view;
5
- private componentFactoryResolver;
6
5
  private template;
7
6
  set busy(isLoading: boolean);
8
- constructor(view: ViewContainerRef, componentFactoryResolver: ComponentFactoryResolver, template: TemplateRef<AnimationPlayState>);
7
+ constructor(view: ViewContainerRef, template: TemplateRef<AnimationPlayState>);
9
8
  static ɵfac: i0.ɵɵFactoryDeclaration<BusyDirective, never>;
10
9
  static ɵdir: i0.ɵɵDirectiveDeclaration<BusyDirective, "[busy]", never, { "busy": { "alias": "busy"; "required": false; }; }, {}, never, never, false, never>;
11
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsi-developpement/tsi-shared-ui",
3
- "version": "1.7.37",
3
+ "version": "1.7.39",
4
4
  "author": "TSI",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {
package/public-api.d.ts CHANGED
@@ -16,3 +16,4 @@ export * from './lib/providers';
16
16
  export * from './lib/package-initializer';
17
17
  export * from './lib/shared.module';
18
18
  export * from './lib/functions';
19
+ export * from './lib/interceptors';