ngx-sp-auth 4.2.0 → 4.2.1

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.
@@ -3,17 +3,18 @@ import { Router } from '@angular/router';
3
3
  import { Subject } from 'rxjs';
4
4
  import { MsalGuardConfiguration, MsalService } from '@azure/msal-angular';
5
5
  import { BsModalService } from 'ngx-bootstrap/modal';
6
- import { ToastrService } from 'ngx-toastr';
7
6
  import { MessageService } from 'ngx-sp-infra';
8
- import { AuthStorageService } from '../../../storage/auth-storage.service';
7
+ import { ToastrService } from 'ngx-toastr';
9
8
  import { LibCustomMenuService } from '../../../custom/lib-custom-menu.service';
10
9
  import { ProjectUtilservice } from '../../../project/project-utils.service';
10
+ import { AuthStorageService } from '../../../storage/auth-storage.service';
11
11
  import { MenuServicesService } from '../menu-services.service';
12
12
  import { AuthService } from '../../../auth.service';
13
13
  import { LibCustomEnvironmentService } from '../../../custom/lib-custom-environment.service';
14
+ import { PesquisaTelasGlobalService } from '../../../services/pesquisa-telas-global.service';
15
+ import { DynamicMenu } from '../model/dynamic-menu';
14
16
  import { IMenuItemStructure } from '../model/imenu-item-structure.model';
15
17
  import { ISubmenuItemStructure } from '../model/isubmenu-item-structure.model';
16
- import { DynamicMenu } from '../model/dynamic-menu';
17
18
  import * as i0 from "@angular/core";
18
19
  export declare class MenuLateralComponent implements OnInit, OnDestroy {
19
20
  private _msalGuardConfiguration;
@@ -28,7 +29,8 @@ export declare class MenuLateralComponent implements OnInit, OnDestroy {
28
29
  private _projectUtilService;
29
30
  private _router;
30
31
  private _authService;
31
- constructor(_msalGuardConfiguration: MsalGuardConfiguration, _msalService: MsalService, _toastrService: ToastrService, _customMenuService: LibCustomMenuService, _customEnvironmentService: LibCustomEnvironmentService, _authStorageService: AuthStorageService, _bsModalService: BsModalService, _menuServices: MenuServicesService, _messageService: MessageService, _projectUtilService: ProjectUtilservice, _router: Router, _authService: AuthService);
32
+ _pesquisaTelasGlobalService: PesquisaTelasGlobalService;
33
+ constructor(_msalGuardConfiguration: MsalGuardConfiguration, _msalService: MsalService, _toastrService: ToastrService, _customMenuService: LibCustomMenuService, _customEnvironmentService: LibCustomEnvironmentService, _authStorageService: AuthStorageService, _bsModalService: BsModalService, _menuServices: MenuServicesService, _messageService: MessageService, _projectUtilService: ProjectUtilservice, _router: Router, _authService: AuthService, _pesquisaTelasGlobalService: PesquisaTelasGlobalService);
32
34
  ngOnInit(): Promise<void>;
33
35
  ngOnDestroy(): void;
34
36
  sidebar: ElementRef<HTMLDivElement>;
@@ -0,0 +1,99 @@
1
+ import { ApplicationRef, ComponentFactoryResolver, Injector } from '@angular/core';
2
+ import { ITelaRota } from 'ngx-sp-infra';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Serviço responsável por criar e gerenciar uma instância global do componente SearchInput.
6
+ *
7
+ * Este serviço utiliza a API do Angular para criar e renderizar componentes dinamicamente,
8
+ * anexando-os diretamente ao DOM (fora da hierarquia normal de componentes).
9
+ *
10
+ * Características principais:
11
+ * - Cria apenas uma instância do componente por vez (singleton)
12
+ * - Gerencia o ciclo de vida do componente (criação, anexação ao DOM, destruição)
13
+ * - Lida com eventos do componente via RxJS Subjects
14
+ * - Garante limpeza apropriada de recursos (subscriptions, referencias DOM)
15
+ *
16
+ * @example
17
+ * constructor(private pesquisaService: PesquisaTelasGlobalService) {
18
+ * // Para exibir o componente de pesquisa
19
+ * pesquisaService.show();
20
+ *
21
+ * // Para esconder o componente
22
+ * pesquisaService.hide();
23
+ * }
24
+ */
25
+ export declare class PesquisaTelasGlobalService {
26
+ private componentFactoryResolver;
27
+ private appRef;
28
+ private injector;
29
+ /**
30
+ * Referência ao componente dinâmico criado.
31
+ * Usado para gerenciar o ciclo de vida e estado do componente.
32
+ * Null quando o componente não está visível/criado.
33
+ */
34
+ private _componentRef?;
35
+ /**
36
+ * Subject que centraliza eventos de fechamento do componente.
37
+ * Ao invés de tratar o evento onClose diretamente, emitimos neste Subject para permitir um ponto único de tratamento no serviço.
38
+ */
39
+ private _onClose$;
40
+ /**
41
+ * Agregador de subscriptions de longa duração.
42
+ * Contém principalmente a inscrição do constructor que observa _onClose$.
43
+ * Usado para garantir limpeza adequada em ngOnDestroy.
44
+ */
45
+ private _subscriptions;
46
+ /**
47
+ * Subscription específica do evento onClose do componente atual.
48
+ * Mantida separadamente para permitir limpeza imediata em hide().
49
+ * Null quando não há componente ativo.
50
+ */
51
+ private _componentCloseSub;
52
+ telas: ITelaRota[];
53
+ constructor(componentFactoryResolver: ComponentFactoryResolver, appRef: ApplicationRef, injector: Injector);
54
+ getTelas(): void;
55
+ /**
56
+ * Cria e exibe uma instância do componente SearchInput na tela.
57
+ *
58
+ * Este método utiliza a API baixo nível do Angular para criar um componente dinamicamente e anexá-lo ao DOM. O processo envolve:
59
+ *
60
+ * 1. Criar o componente via ComponentFactoryResolver
61
+ * 2. Configurar suas propriedades iniciais
62
+ * 3. Registrá-lo no mecanismo de detecção de mudanças do Angular
63
+ * 4. Anexá-lo ao DOM (fora da hierarquia normal de componentes)
64
+ *
65
+ * IMPORTANTE: Este método garante que apenas uma instância do componente existe por vez, retornando early se já houver um componente ativo.
66
+ *
67
+ * @example
68
+ * service.show(); // Cria e exibe o componente
69
+ * service.show(); // Não faz nada (componente já existe)
70
+ */
71
+ show(): void;
72
+ /**
73
+ * Esconde e destrói a instância atual do componente.
74
+ *
75
+ * Este método realiza a limpeza completa do componente:
76
+ * 1. Define isVisible como false (para animações de saída)
77
+ * 2. Remove o componente do ciclo de detecção de mudanças
78
+ * 3. Destrói o componente e sua árvore de componentes
79
+ * 4. Remove referências e cancela inscrições
80
+ *
81
+ * IMPORTANTE: Este método é idempotente - é seguro chamá-lo múltiplas vezes ou quando não há componente ativo.
82
+ */
83
+ hide(): void;
84
+ /**
85
+ * Lifecycle hook do Angular chamado quando o serviço é destruído.
86
+ *
87
+ * Realiza limpeza completa de recursos para evitar memory leaks:
88
+ * 1. Destrói qualquer instância ativa do componente
89
+ * 2. Cancela todas as inscrições de longa duração
90
+ * 3. Completa o Subject de eventos
91
+ *
92
+ * NOTA: Como este serviço é providedIn: 'root', ele normalmente
93
+ * só será destruído quando a aplicação for encerrada. Ainda assim,
94
+ * manter essa limpeza é uma boa prática e ajuda em testes.
95
+ */
96
+ ngOnDestroy(): void;
97
+ static ɵfac: i0.ɵɵFactoryDeclaration<PesquisaTelasGlobalService, never>;
98
+ static ɵprov: i0.ɵɵInjectableDeclaration<PesquisaTelasGlobalService>;
99
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-sp-auth",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "description": "Biblioteca de utilitários de autenticação.",
5
5
  "author": "P&D",
6
6
  "keywords": [
@@ -22,7 +22,7 @@
22
22
  "peerDependencies": {
23
23
  "@azure/msal-angular": "^4.0.16",
24
24
  "@azure/msal-browser": "^4.18.0",
25
- "ngx-sp-infra": "^6.4.0",
25
+ "ngx-sp-infra": "^6.4.2",
26
26
  "ngx-toastr": "^19.0.0"
27
27
  },
28
28
  "sideEffects": false,
package/public-api.d.ts CHANGED
@@ -2,16 +2,18 @@
2
2
  export * from './lib/auth.module';
3
3
  /** Services */
4
4
  export * from './lib/auth.service';
5
- export * from './lib/custom/lib-custom-environment.service';
6
5
  export * from './lib/components/menu-lateral/menu-services.service';
7
- export * from './lib/storage/auth-storage.service';
6
+ export * from './lib/custom/lib-custom-environment.service';
8
7
  export * from './lib/custom/lib-custom-login.service';
9
8
  export * from './lib/custom/lib-custom-menu.service';
10
9
  export * from './lib/custom/lib-custom-storage.service';
11
10
  export * from './lib/custom/lib-menu-config.service';
11
+ export * from './lib/services/pesquisa-telas-global.service';
12
+ export * from './lib/storage/auth-storage.service';
12
13
  /** Components */
13
- export * from './lib/components/login/login.component';
14
+ export * from './lib/components/error-menu-not-allowed/error-menu-not-allowed.component';
14
15
  export * from './lib/components/login-os/login-os.component';
16
+ export * from './lib/components/login/login.component';
15
17
  export * from './lib/components/menu-lateral/dropdown/primary-dropdown/primary-dropdown.component';
16
18
  export * from './lib/components/menu-lateral/dropdown/secondary-dropdown/secondary-dropdown.component';
17
19
  export * from './lib/components/menu-lateral/menu/menu-lateral.component';
@@ -19,7 +21,6 @@ export * from './lib/components/menu-lateral/menu/selecao-estabelecimentos-modal
19
21
  export * from './lib/components/menu-lateral/submenus/dynamic-menu/dynamic-menu.component';
20
22
  export * from './lib/components/menu-lateral/submenus/notif-submenu/notif-submenu.component';
21
23
  export * from './lib/components/nova-senha/nova-senhacomponent';
22
- export * from './lib/components/error-menu-not-allowed/error-menu-not-allowed.component';
23
24
  /** Models */
24
25
  export * from './lib/components/menu-lateral/model/imenu-item-structure.model';
25
26
  export * from './lib/components/menu-lateral/model/imenu.model';
@@ -31,17 +32,17 @@ export * from './lib/components/menu-lateral/model/ret-menu-lateral';
31
32
  export * from './lib/components/menu-lateral/model/ret-menu-promise';
32
33
  export * from './lib/components/menu-lateral/model/ret-navsubmenu';
33
34
  /** Custom */
35
+ export * from './lib/custom/models/icustom-environment-service';
34
36
  export * from './lib/custom/models/icustom-login-service';
35
37
  export * from './lib/custom/models/icustom-menu-service';
36
- export * from './lib/custom/models/imenu-config';
37
38
  export * from './lib/custom/models/icustom-storage-service';
38
- export * from './lib/custom/models/icustom-environment-service';
39
+ export * from './lib/custom/models/imenu-config';
39
40
  /** Guards */
40
41
  export * from './lib/guards/auth-guard';
41
42
  export * from './lib/guards/external-login-guard';
43
+ export * from './lib/guards/is-menu-allowed-guard';
42
44
  export * from './lib/guards/login-guard';
43
45
  export * from './lib/guards/login-os.guard';
44
- export * from './lib/guards/is-menu-allowed-guard';
45
46
  /** Interceptors */
46
47
  export * from './lib/interceptors/auth-aplic.interceptor';
47
48
  export * from './lib/interceptors/auth-infra.interceptor';