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 {
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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/
|
|
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/
|
|
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/
|
|
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';
|